首页 > 编程语言 > 详细

二分查找【JavaScript】

时间:2018-05-16 21:45:09      阅读:166      评论:0      收藏:0      [点我收藏+]
 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <title>2.html</title>
 5 <script>
 6     function binarySearch(arr, findVal, leftIndex, rightIndex) {
 7         //使用二分查找的条件是 arr是有序数组
 8         //终止条件1. 找不到
 9         if (leftIndex > rightIndex) {
10             document.writeln("找不到");
11             return;
12         }
13         var midIndex = Math.floor((leftIndex + rightIndex) / 2);
14         var midVal = arr[midIndex];
15         if (midVal > findVal) {
16             binarySearch(arr, findVal, leftIndex, midIndex - 1);
17         } else if (midVal < findVal) {
18             binarySearch(arr, findVal, midIndex + 1, rightIndex);
19         } else {
20             document.writeln("找到了,下标是" + midIndex); //终止条件2. 找到了
21             return;
22         }
23     }
24     var arr = [ 1, 2, 3, 4, 5, 6 ];
25     //arr    是有序数组
26     binarySearch(arr, 5, 0, arr.length - 1);
27 </script>
28 </head>
29 <body>
30 </body>
31 </html>

1. 有序数组

2. 两个终止条件(找不到leftIndex>rightIndex)

3. 中值下标像下取整

二分查找【JavaScript】

原文:https://www.cnblogs.com/chenhongarticles/p/9048102.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!