JavaScript 中的二分查找程序
创建一个函数,例如 binarySearch(),其中包含 4 个参数 -
- 一个已排序的 Number / String 字面数组
- 数组的起始索引 (0)
- 数组的结束索引 (length - 1)
- 要搜索的数字
如果数字存在于数组中,则返回该数字的索引,否则返回 -1。以下是完整代码 -
示例
const arr = [2,4,6,6,8,8,9,10,13,15,17,21,24,26,28,36,58,78,90]; //binary search function //returns the element index if found otherwise -1 const binarySearch = (arr, start, end, num) => { const mid = start + Math.floor((end - start)/2); if(start <= end){ if(arr[mid] === num){ return mid; } if(num < arr[mid]){ return binarySearch(arr, start, mid-1, num); } if(num > arr[mid]){ return binarySearch(arr, mid+1, end, num); } } return -1; }; console.log(binarySearch(arr, 0, arr.length-1, 13)); console.log(binarySearch(arr, 0, arr.length-1, 11));
输出
此代码在控制台中的输出为 -
8 -1
广告