hi,
can anyone pls find out the problem of my code.

Code:

public class binarysearch {
public static void main ( String[] args ) {
int[] array = {2,2,10,20,55,100};
int target = 2;
int left = 0;
int right = array.length - 1;
int mid = -1;


while ( left <= right ) {
mid = ( left + right ) / 2;


if ( target == array[mid] )
break;
else if ( target < array[mid] )
right = mid - 1;
else
left = mid - 1;
}


if ( mid != -1 )
System.out.println ( target + " found at index " + mid );
else
System.out.println ( target + " not found" );
}
}

Problem :
here it's only showing me the 1st position, but i want it to show me both the position. can anyone pls fix-up the error of my code.

thank you

shantuli

Edited 3 Years Ago by happygeek: fixed formatting

Are you trying to find the INDEX of any one of the value in the integer array? Since you have declared only a single dimensional array, there is only one Index for it.

ooh! I get it, you want to find all the indexes where a number "target" has appeared, right? Well it's showing 0, you also need 1, cause '2' also appears in that index. However, according to your program, there is no way to put that position. I' have no idea about Java, but I have done it in C++ (just now LOL), so I'll try to convert it, and tell you. You can use continue statement too for more clarity.

I' have no idea about Java, but I have done it in C++

for once this is java forum, secondly this post is nearly 3 years old so what you trying to achive?

>this post is nearly 3 years old
Argh! no ways.. I thought I was a recent one, I saw it in the display of similar threads -_-' Sorry. I didn't wanted to resurrect an old thread. I'm so sorry.

I'm trying to learn java, so I was going through this forum, and saw the thread. Didn't realize it was THAT old. I feel like a crap. and couldn't even get the effin result right T_T

This article has been dead for over six months. Start a new discussion instead.