用二分去查找元素要求数组的有序性或者拥有类似于有序的性质。、
查找5
首先定义好最小值和最大值以及中间值
l= 0;r = n ; mid = l+r >>1;
如果mid = 35 > 5,把high指针指到 【5】
现mid = a[2];
mid = 8 > 5,吧high移到【mid-1】的位置 high = 【1】
mid = 【0+1】 / 2 = 0 ;
找到key = 5
题目:
https://leetcode.cn/problems/binary-search/
class Solution { public: int search(vector<int>& nums, int target) { int l = 0,r = nums.size() - 1; while(l < r){ int mid = l + r + 1 >> 1; if(nums[mid] > target) r = mid -1; else l = mid; } if(nums[l] == target) return l;//cout<<l; else return -1;//cout<<"-1"; } };