您的位置:首页 > Web前端 > JavaScript

js顺序查找与二分查找

2017-03-29 18:30 211 查看
顺序查找适合数据随机排列的列表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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐