二分查找场景
二分搜索用于在一个单调或者局部单调有序数组中查找一个符合某些条件的值,时间复杂度为O(logN)
二分查找原理图解
拿升序数组为例子进行解释,假设我们需要再数组中找到目标值key的下标。
1、首先可以将数组按key所在下标划分为三个部分,左边是小于key的部分,然后中间是key值,右边为大于key的部分。
用left和right两个指针不断地缩小搜索区域。
2、取mid为left和right的中间值,如果mid在key的下标的左边(即nums[mid] < key)就将left移到mid+1的位置。