二分法
1. 二分查找法代码实现: 1 // 二分查找法 2 // A[]为严格递增序列,left为二分下界,x为欲查询的数 3 // 二分区间为左闭右闭的[left, right], 传入的初值为[0, n-1] 4 int binarySearch(int A[], int left, int right, int x){ 5 int mid; 6 while (left <= right){ 7 mid = (left + right) / 2; // mid = left + (right - left) / 2; 8 if (A[mid] == x){ 9 return mid; 10 } 11 else if (A[mid] > x){ 12 right = mid - 1; 13 } 14 else if (A[mid] < x){ 15 left = mid + 1; 16 } 17 } 18 19 return -1; 20 } 2. 二分法求序列中第一个大于等于x的元素的位置L 1 // 求序列中第一个大于等于x的元素的位置L 2 // 二分上下界为左闭右闭的[left, right], 传入的初值为[0, n] 3 int lower_bound(int A[], int left, int right, int x){ 4 int mid; 5 while