JaveScript用二分法与普通遍历(冒泡)

    从有序的数列中,折半查找.

  思路:

    -->  找到数组中最中间的元素,将其作为基准

    -->  从0开始判断数组中的元素,与基准进行比较

    -->  比基准小的元素,存入左边,

        比基准打得元素,存入右边

        依次递归,得出结果

 

二分法查找函数

1 function getNum(target, Arr){ 2 var middle = Math.floor(Arr.length / 2) ,res; 3 var last = Arr.length; 4 var temp; 5 function getRes(target,Arr){ 6 count++; 7 if (target>Arr[middle]){ 8 temp=middle; 9 middle= Math.floor(middle+Math.abs(last-middle)/2); 10 last=temp; 11 }else if(target < Arr[middle]){ 12 temp=middle; 13 middle = Math.floor(middle-Math.abs(last - middle) / 2) ; 14 last=temp; 15 }else{ 16 res = middle; 17 return; 18 } 19 if(last==middle){ 20 Arr[middle]!=target; 21 res = "不存在"; 22 return; 23 } 24 return getRes(target,Arr); 25 }; 26 getRes(target, Arr); 27 return res; 28 }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zygzzj.html