一、写在前面
查找算法主要就两种算法,一个是顺序查找,另一个是二分查找,顺序查找的时间复杂度为O(n)
,二分查找的时间复杂度为O(logn)。
二、顺序查找
let arr = [5, 4, 3, 2, 6, 8, 9, 1]
const Sequential = (array, value) => {
let length = array.length
for (let i = 0; i < length; i++) {
if (value === array[i]) {
return i
}
}
return -1
}
console.log(Sequential(arr, 0))
三、二分查找可以使用二分查找的条件是:数组必须是顺序排列的
let arr = [1, 2, 3, 4, 5, 6, 7, 8]
const binarySearch = (array, num) => {
let length = array.length
let left = 0
let right = length - 1
while (left <= right) {
let mid = Math.floor((right + left) / 2)
if (array[mid] < num) {
left = mid + 1
}else if(arr[mid] > num) {
right = mid - 1
}else {
return mid
}
}
return -1
}
let index = binarySearch(arr, 0)
console.log(index)
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/weixin_47450807/article/details/123450230
内容来源于网络,如有侵权,请联系作者删除!