首页 > 代码库 > javascript学习6-练习之3二分查找算法
javascript学习6-练习之3二分查找算法
二分查找算法,对数据进行查找并且显示位置。
核心思想:将所查找数据与查询数组中间的数进行比较,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);
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。