首页 > 代码库 > 算法(第4版)-1.1.10 二分查找

算法(第4版)-1.1.10 二分查找

总结:本小节通过二分查找的例子展示本书学习新算法的基本方法,研究新算法的原理、用例、必要性(模拟实际情况)和性能。

 

重点:

 

1.二分查找:

import java.util.Arrays;public class BinarySearch {    public static int rank(int key, int[] a) {        int lo = 0;        int hi = a.length - 1;        while (lo <= hi) {            // 被查找的键要么不存在,要么必然存在于a[lo..hi]之中            int mid = lo + (hi - lo) / 2;            if (key < a[mid])                hi = mid - 1;            else if (key > a[mid])                lo = mid + 1;            else                return mid;        }        return -1;    }    public static void main(String[] args) {        int[] a = {1, 3, 5, 7, 9, 11};        int key = 5;        System.out.println(rank(key, a));        key = 8;        System.out.println(rank(key, a));    }}

 

2.没有如二分查找或者归并排序这样的高效算法,解决大规模的白名单问题是不可能的。

算法(第4版)-1.1.10 二分查找