定义
二分查找(二分搜索或折半搜索)是一种在有序数组中查找某一特定元素的搜索算法。
搜索过程从中间开始,如果中间元素正好是要查找的元素,则搜索过程结束;若果某一特定的元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,反复…
时间复杂度:O(logn)
例子:
leetcode 35.搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
你可以假设数组中无重复元素。
示例:
输入: [1,3,5,6], 5
输出: 2
1
2
3
4
5
6
7
8
9
10
11
12
13
|
var searchInsert = function(nums, target) {
var left = 0;
var right = nums.length;
while (left < right) {
var mid = Math.floor((left + right) / 2);
if (nums[mid] < target) {
left = mid + 1;
} else {
right = mid;
}
}
return left;
};
|