首页 > 其他 > 详细

二分法查找

时间:2020-03-04 18:47:09      阅读:58      评论:0      收藏:0      [点我收藏+]

随机产生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 }

 

二分法查找

原文:https://www.cnblogs.com/chailuG/p/12411355.html

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