Friday, January 19, 2007

Quicksort bug

Any ideas, what may be the possible bug in the following code:

1: public static int binarySearch(int[] a, int key) {
2: int low = 0;
3: int high = a.length - 1;
4:
5: while (low <= high) {
6: int mid = (low + high) / 2;
7: int midVal = a[mid];
8:
9: if (midVal < key)
10: low = mid + 1;
11: else if (midVal > key)
12: high = mid - 1;
13: else
14: return mid; // key found
15: }
16: return -(low + 1); // key not found.
17: }

Note: It is standard algo implemented in Java to sort ArrayList

Regards,
Sandeep