javascript学习6-练习之3二分查找算法
时间:2014-07-22 23:09:35
收藏:0
阅读:304
二分查找算法,对数据进行查找并且显示位置。
核心思想:将所查找数据与查询数组中间的数进行比较,findVal<midVal,则在左边进行二分查找,否则在右边进行二分查找递归调用
具体代码如下:
1 //二分查找 2 var string2=[1,3,42,88,123,143]; 3 var leftIndex=0; 4 var rightIndex=5; 5 function binarySearch(string2,findVal,leftIndex,rightIndex) 6 { 7 if(leftIndex>rightIndex) 8 { 9 // 提示找不到,防止无穷递归 10 document.write("找不到"); 11 return; 12 } 13 var midVal=string2[Math.floor((leftIndex+rightIndex)/2)] 14 //比较 15 if(findVal>midVal) 16 { 17 leftIndex=Math.floor((leftIndex+rightIndex)/2)+1; 18 binarySearch(string2,findVal,leftIndex,rightIndex); 19 } 20 else if(findVal<midVal) 21 { 22 rightIndex=Math.floor((leftIndex+rightIndex)/2)-1; 23 binarySearch(string2,findVal,leftIndex,rightIndex); 24 } 25 else if(findVal==midVal) 26 { 27 document.writeln("有这个数字,而且位置是"+Math.floor((leftIndex+rightIndex)/2)); 28 } 29 } 30 binarySearch(string2,143,0,string2.length);
评论(0)