algorithm-binary-search
二分查找
二分查找(Binary Search)是一种高效的搜索算法,适用于有序数组或有序列表。它通过不断地将搜索范围减半来查找目标元素,从而在O(log n)的时间复杂度内找到特定元素的位置。
在有序数组中找到中间位置的元素,与目标元素进行比较。如果中间元素等于目标元素,则搜索成功;如果中间元素大于目标元素,则在数组的左半部分继续进行二分查找;如果中间元素小于目标元素,则在数组的右半部分进行二分查找。通过不断重复这个过程,直到找到目标元素或搜索范围缩小到为空为止。
基本模板
找到大于等于target的第一个数(最左边)
nums = [1, 2, 4, 5, 5, 6], target = 5 -> l = 3
123456int l = 0, r = n;while (l < r) { int m = l + (r-l)/2; if (nums[m] >= target) r = m; else l = m + 1;}
找到大于target的第一个数
123456int l = 0, r = n;while (l < r ...