顺序查找适合数据随机排列的列表O(N)
二分查找适合排序列表O(log2n)
顺序查找
function seqSearch(arr, data) {
var returnIndex = -1
var max = arr[0]
var min = arr[0]
arr.forEach((cur, index) => {
if (cur === data) {
returnIndex = index
}
if (cur > max) {
max = cur
}
if (min > cur) {
min = cur
}
})
return {
index: returnIndex,
max: max,
min: min
}
}
var arr = [4, 5, 7, 1, 8, 19]
seqSearch(arr, 8) //{index: 4,max: 19,mix: 1}
二分查找
function binSearch(arr, data){
var up = arr.length - 1
var low = 0
while(low <= up){
var mid = Math.floor((up+low)/2)
if (arr[mid] > data) {
up = mid + 1
} else if (arr[mid] < data) {
low = mid -1
} else {
return mid
}
}
return -1
}
var arr = [1,2,3,4,6,7,8,11,14,17,20]
binSearch(arr, 8) //6