java - Binary Search - Trouble getting information -


i have issue. learning bout binary arrays , trying figure out. trying make user enter book number , search through array reflist , print through booklist.

problem when enter number greater 1 compare value never reaches 0.

     public boolean binarysearch(string [] a, int left, int right, string v){      int middle;      numofsearches ++;      if (left > right) {          return false;      }       middle = (left + right)/2;      int compare = v.compareto(a[middle]);      system.out.println("middle value: "+middle);      if (compare == 0) {          binaryoutput.settext("the book is: "+booklist[middle]);      }      if (compare < 0) {          return binarysearch(a, left, (middle-1), v);      } else {          return binarysearch(a, middle + 1, right, v);      }  } 

just forgotten return true.

 if (left > right) {      return false;  }  middle = (left + right)/2;  int compare = v.compareto(a[middle]);  system.out.println("middle value: "+middle);  if (compare == 0) {      binaryoutput.settext("the book is: "+booklist[middle]);      return true; // missing!  }  if (compare < 0) {      return binarysearch(a, left, (middle-1), v);  } else {      return binarysearch(a, middle + 1, right, v);  } 

also compareto might implemented incorrectly.


Comments

Popular posts from this blog

database - VFP Grid + SQL server 2008 - grid not showing correctly -

jquery - Set jPicker field to empty value -

.htaccess - htaccess convert request to clean url and add slash at the end of the url -