创建一个函数,说它binarySearch()
接受4个参数-
排序的数字/字符串文字数组
数组的起始索引
数组的结束索引(长度-1)
要搜索的号码
如果数组中存在数字,则应返回数字的索引,否则应返回-1。这是完整的代码-
const arr = [2,4,6,6,8,8,9,10,13,15,17,21,24,26,28,36,58,78,90]; //二进制搜索功能 //如果找到则返回元素索引-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