<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> var binarySearch=function(arr,start,end,num){ if(start-end==1){ if(arr[start]==num){ return start; }else if(arr[end]==num){ return end; } return -1; } var center=Math.ceil((start+end)/2); if(arr[center]!=num){ return num>arr[center]?binarySearch(arr,center,end,num):binarySearch(arr,start,center,num); }else{ return center; } } var arr=[1,5,7,8,10,15,25,36,49,56,67,78,89,93,102,110,123,134]; document.writeln(binarySearch(arr,0,arr.length-1,93)); </script> </head> <body> </body> </html>
PS:Math.ceil()执行向上舍入,将数值向上舍入为最接近的整数;
Math.floor()执行向下舍入,将数值向下舍入为最接近的整数;
Math.round()执行标准舍入,将数值四舍五入为最接近的整数。二分查找的时间复杂度为O(logn)
JavaScript实现二分查找
最新推荐文章于 2023-07-09 20:25:52 发布