当前位置: 首页 > Web前端 > JavaScript

前端工程师leetcode算法面试必备——二分查找算法(上)_0

时间:2023-03-27 12:59:34 JavaScript

一、二分查找算法1、简介二分查找是一种在有序数组中查找特定元素的查找算法。二分查找算法的时间复杂度为O(logn),比顺序查找的O(n)时间复杂度快很多。例如,在一个长度为一百万的有序数组中,使用顺序查找,最坏的情况需要执行一百万次,而二分查找算法只需要二十次!从上图读者不难发现,二分查找的关键是通过比较目标值和中间值,将查找区间缩小一半,这也是为什么有序数组是二分查找算法的重要前提。2.代码实现从上面我们可以看出,二分查找并不是一个特别复杂的算法,但是想要通过代码正确实现也不是一件容易的事。先求数组的中间下标(整数),从而得到中间值:constmid=Math.floor((start+end)/2)读者可能第一时间想到上面的写法,但是在某些极端情况下,start+end可能会直接超过最大安全整数,所以比较谨慎的写法如下:constmid=Math.对于学者来说,它通常被写成一个死循环。这里建议保持搜索区间左闭右开:while(start