二分法查找
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 }
以上是关于二分法查找的主要内容,如果未能解决你的问题,请参考以下文章