刚学算法,看了二分查找的概念,在还没看示例代码的时候,根据自己的思路用js写了实现:
function binarySearch(arr, aimNum) {
let index = Math.ceil(arr.length/2) - 1;
if (arr[index] === aimNum) {
return index
} else if (arr[index] > aimNum){
halfSearch(arr.slice(0,index), aimNum)
} else if (arr[index] < aimNum) {
halfSearch(arr.slice(index+1), aimNum)
}
}
看了示例代码,发现我的思路好像有点偏,但我觉得在日常开发中好像也可以,就是不知道这种方式是不是不够完善,有没有大佬给我指点一下?跪谢
可以是可以,但肯定不会有
Array#findIndex
快。而且你这写的有挺多问题
slice
效率太低,应递归下标