标签:style stat 循环 ati 一点 color [] 防止 就是
第一次开始学算法就是二分法了吧,那时候就是感觉神奇+有趣,嗯,还是记录一下吧
推荐:算法4讲的内容,很清楚的
1 public static int search(int[] a, int k) { 2 int lo = 0, hi = a.length - 1; 3 if (k < a[lo] || k > a[hi]) return -1; 4 5 /** 6 * 1. mid +1/-1是为了防止相邻两个位置的作比较得出mid永远等于lo的情况,从而无限循环 7 * 2. 另一方面mid +1/-1排除了mid位置的元素 (最近在发现第一点,一直以来都以为是因为考虑到第二点,谨记谨记) 8 */ 9 while (lo <= hi) { 10 int mid = lo + (hi - lo) / 2; 11 if (a[mid] < k) lo = mid + 1; 12 else if (a[mid] > k) hi = mid - 1; 13 else return mid; 14 } 15 return -1; 16 }
标签:style stat 循环 ati 一点 color [] 防止 就是
原文地址:https://www.cnblogs.com/crazyRanZhang/p/9612729.html