二分法查找

Posted chailug

tags:

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

随机产生15个不想等的[0,100]之间的随机数,对这15个数从小到大排序,然后应用二分法查找34是否在这15个随机数里边

 1 function random(num) {
 2     var arr = []
 3     while(arr.length < num) {
 4         var num = Math.floor(Math.random()*100); //生成一个0-100的随机数
 5         if(arr.length === 0) {
 6             arr.push(num)
 7         } else {
 8             for(var i = 0;i<arr.length;i++) {
 9                 if(arr.join(‘,‘).indexOf(num)<0){
10                     arr.push(num)
11                 }
12             }
13         }
14         
15     }
16     return arr
17     
18 }
19 let newArray = random(15)
20 
21 newArray.sort(function(a,b){
22     return a-b
23 })
24 console.log(newArray)
25 
26 function getNum(arr,num) {
27     var len = arr.length,
28     st = 0,
29     end = len-1;
30     while(st<=end){
31         var mid = Math.floor((st+end)/2)
32         if(num == arr[mid]) {
33             return mid
34         }else if(num> arr[mid]){
35             st = mid+1
36         } else {
37             end = mid-1
38         }
39     }
40     return arr
41 }
42 let cur = getNum(newArray,34)
43 if(cur instanceof Array) {
44     console.log(‘无‘)
45 } else {
46     console.log(‘找到了下表为‘+ cur)
47 }

 

以上是关于二分法查找的主要内容,如果未能解决你的问题,请参考以下文章

二分查找常见套路与分析

Java实现二分查找具体实现代码

java 二分查找法

代码题(12)— 二分查找

二分查找代码

PHP实现二分查找算法(代码详解)