/**
* @Desc 二分搜索
* 二分搜索 前提是 有序数组
* 从数组中间值开始,如果中间值正好等于搜索值,结束搜索;
* 如果搜索值比 中间值大或小,则在大于或小于中间值的那一半数组中继续搜索
*/
Array.prototype.binarySort = function (selector) {
let low = 0;
let high = this.length - 1;
while(low <= high) {
let midIndex = Math.floor((low + high) / 2);
let mid = this[midIndex];
if (selector < mid) {
high = midIndex - 1;
} else if (selector > mid) {
low = midIndex + 1;
} else {
return midIndex;
}
}
return -1;
}
算法系列:5. 二分搜索
猜你喜欢
转载自blog.csdn.net/RedaTao/article/details/120534643
今日推荐
周排行