二分查找
Opened this issue · 0 comments
RicoLiu commented
/**
* 二分查找法(有序数组)
*
* 时间复杂度: O(log N).
*
* @param {Array} array .
* @param {Number} value.
* @returns {Number} Index of the element or -1 if not found.
*/
function binarySearch(array, value) {
var middle = Math.floor(array.length / 2);
var left = 0;
var right = array.length;
while (right >= left) {
var middleValue = array[middle];
if (middleValue === value) {
return middle;
} else if (middleValue > value) {
right = middle - 1;
} else {
left = middle + 1;
}
middle = Math.floor((left + right) / 2);
}
return -1;
}