二分 搜索
Posted 沿着路走到底
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二分 搜索相关的知识,希望对你有一定的参考价值。
二分搜索的思路
从数组的中间元素开始,如果中间元素正好是目标值,则搜索结束。
如果目标值大于或小于目标元素,则在大于或小于中间元素的那一半数组中搜索。
二分搜索的前提是数组是有序的,如果数组是乱序的,则首先要先对数组进行排序。
时间复杂度
每一次比较都使搜索范围缩小一半。
O(LogN)
const arr = [1, 2, 3, 4, 5]
function binarySearch(item)
let low = 0;
let high = arr.length - 1
while(low <= high)
const mid = Math.floor((low + high) / 2)
const element = arr[mid]
if (element < item)
low = mid + 1
else if (element > item)
high = mid - 1
else
return mid
return -1
console.log(binarySearch(2))
1
以上是关于二分 搜索的主要内容,如果未能解决你的问题,请参考以下文章