【算法与数据结构】二分查找Java实现
通常可以直接调用Arrays类中的binarySearch方法,详情请见API文档
注意:
前提条件1:导包java.util.Arrays;
前提条件2:提前排序,可用Arrays.sort();
【代码】
1 public class Main { 2 public static int binarySearch(int[] a, int key) { 3 int lo = 0; 4 int hi = a.length; 5 while (lo <= hi) { 6 int mid = lo + (hi - lo) / 2; 7 if (key < a[mid]) { 8 hi = mid - 1; 9 }else if (key > a[mid]) { 10 lo = mid + 1; 11 }else { 12 return mid; //注意返回的是下标 13 } 14 } 15 return -1; //注意没有找到时要返回-1 16 } 17 }