/**
* 线性查找
*
* @param {*} [list=[]]
* @param {*} val
* @returns
*/
function lineFind(list = [], val) {
for (let i = 0; i < list.length; i++) {
if (list[i] === val) {
return i
}
}
return -1
}
T(n) = O(n)
/**
* 二分查找
*
* @param {*} [list=[]]
* @param {*} val
*/
function binarySort(list = [], val) {
let left = 0
let right = list.length - 1
let mid
while (left < right) {
// 中间数 向上取整
mid = Math.ceil((left + right) / 2)
if (list[mid] === val) return mid
if (list[mid] > val) {
right -= 1
} else {
left += 1
}
}
return -1
}
线性 时间(linear time)
。