算法:二分查找

二分法查找,也称折半查找,是一种在有序数组中查找特定元素的搜索算法。

  1. 首先,从有序数组的中间的元素开始搜索, 如果该元素正好是目标元素(即要查找的元素),则搜索过程结束,否则进行下一步。
  2. 如果目标元素大于或者小于中间元素, 则在数组大于或小于中间元素的那一半区域查找,然后重复第一步的操作。
  3. 如果某一步数组为空,则表示找不到目标元素。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function search(arr,key){
var low = 0;
var high = arr.length-1;
while(low <= high){
var mid = parseInt((low+high)/2);
if(key == arr[mid]){
return mid;
}else if(key < arr[mid]){
high = mid-1;
}else if(key > arr[mid]){
low = mid+1;
}else{
return -1;
}
}
}

console.log(search([0,1,2,3,5,6,7],5));//4
console.log(search([0,1,2,3,5,6,7],4));//undefined
-------------本文结束 感谢您的阅读-------------