function rank(arr, key) {
//循环实现
var lo = 0, hi = arr.length - 1, mid = 0
while (lo <= hi) {
mid = lo + parseInt((hi - lo) / 2)
console.log('mid:' + mid)
if (key > arr[mid]) lo = mid + 1
else if (key < arr[mid]) hi = mid - 1
else return mid
}
return -1
}
var data = [1, 2, 3, 5, 7, 8,8,9]
//console.log(rank(data, 3))
function recRank(arr, key, lo, hi) {
//递归实现
if(lo > hi) return -1
var mid = lo + parseInt((hi - lo) / 2)
if (key > arr[mid]) return recRank(arr,key,mid + 1,hi)
else if (key < arr[mid]) return recRank(arr,key,lo, mid -1)
else return mid
}
console.log(recRank(data, 9,0,data.length -1))
console