【算法与数据结构】二分查找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 }

 

posted @ 2017-08-27 16:17  菜鸟更要虚心学习  阅读(223)  评论(0编辑  收藏  举报