众所周知,二分法是快速查找已排序的数组中某一元素的经典算法。其时间复杂度只有O(log n)。
那么除了上述应用之外,还有什么其他的应用场景可以用到这个吗。
1.一个大小为n-1的递增数组,所有的数字都是唯一的,每个数字的范围在0—n-1的范围内,找出不在数组内的那个数字。
2.大小为n的递增数组,找出数值和下标相同的元素。例如[-4,2,2,4,5,6] 数值和下标相同的为第三个元素:2
3.统计一个数字在排序数组中出现的次数:例如 [1,2,3,3,3,3,4,5] 和 3,输出 4