二分查找JavaScript

Posted Chris Chen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二分查找JavaScript相关的知识,希望对你有一定的参考价值。

 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的主要内容,如果未能解决你的问题,请参考以下文章

用JavaScript实现冒泡排序法选择排序法二分法查找

javascript二分查找

二分查找JavaScript

javascript顺序数组简单实现个二分查找

JavaScript用二分法查找数据等

JavaScript-数组(创建访问新增)查找(二分法)排序(冒泡选择)二维数组