二分查找是一种算法,其输入是一个有序的元素列表(仅当列表是有序的时候,二分查找才管用) 。如果要查找的元素包含在列表中,二分查找返回其位置;否则返回null。

一般而言,对于包含n个元素的列表,用二分查找最多需要log2n步,而简单查找最多需要n步。

1
2
3
4
5
6
7
8
9
10
11
12
13
const binary_search = (list, target) => {
let low = 0,
mid,
guess,
height = list.length - 1
while (low <= height) {
mid = Math.floor((low + height) / 2 )
guess = list[mid]
if (guess < target) {
low = mid + 1
}
}
}

++++++++++