从有序的数列中,折半查找.
思路:
--> 找到数组中最中间的元素,将其作为基准
--> 从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 }