折半查找算法要求查找表的数据是线性结构存储,还要求查找表中的顺序是由⼩到⼤排序(由⼤到⼩排序)
functions binarySearch (arr, target) {
let max = arr.length - 1
let min = 0
while (min <= max) {
let mid = Math.floor((max + min) / 2)
if (target < arr[mid]) {
max = mid - 1
} else if (target > arr[mid]) {
min = mid + 1
} else {
return mid
}
}
return -1
}
最佳情况:T(n) = O(logn) 最差情况:T(n) = O(logn) 平均情况:T(n) = O(logn)
线性查找很简单,只需要进⾏简单的遍历即可.
const linearSearch = (arr, target) => {
for (let i = 0; i < arr.length; i++) {
if (arr[i] === target) {
return i
}
}
return -1
}
最佳情况:T(n) = O(n) 最差情况:T(n) = O(n) 平均情况:T(n) = O(n)
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。