JavaScript实现前端经典算法二分查找,面试常考哟~
一、二分查找算法分析
用二分查找算法查找目标值在数组中对应的下标
1、二分搜索算法的前提是一个有序数组,所以编码实现的时候,先对它排了个序
2、二分查找就是
(1)劈成两半,最左边一个指针low,最右边一个指针high,最中间一个指针mid
(2)如果查找的目标值小于中间mid对应的值,说明目标值在左边,那就缩小范围,把high设置成mid-1
(3)如果查找的目标值大于中间mid对应的值,说明目标值在右边,那就缩小范围,把low设置成mid+1
(4)如果查找的目标值就等于中间mid对应的值,那还有啥好说的,直接返回mid
上图~
又到了我的拙劣的画图环节~
二、编码实现
细节写在代码的注释里了
Array.prototype.binarySort = function(target) {
// 随便用什么算法排,但是二分查找的前提是有序数组哦
this.quickSort();
let low = 0;
let high = this.length - 1;
while(low <= high) {
const mid