1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| public class er_fen_cha_zhao { public static void main(String[] args) { int[] array = {1,2,3,4,5,6,7,8,9,10}; int target = 100; System.out.println("二分查找"); int idx = binarySearch(array,target); if (idx != -1){ System.out.println("目标存在,位置为array[" + idx +"] ==> " + array[idx]); }else System.out.println("目标不存在"); }
public static int binarySearch(int[] a, int t){ int left = 0; int right = a.length - 1; int middle; while (left <= right){
middle = (right + left) / 2;
middle = left + (right - left)/2;
middle = (left + right) >>> 1; System.out.println("middle=>" + middle); if (a[middle] > t) right = middle - 1; if (a[middle] < t) left = middle + 1; if (a[middle] == t) return middle; } return -1; } }
|