您的位置:首页 > Web前端 > JavaScript

javascript中二分查找法的两种实现方式

2015-04-27 13:12 507 查看

一.利用函数的递归解决问题

//二分查找法
//封装成一个函数
<script>
<!--
function search(arr,findval,leftindex,rightindex)
{
if(leftindex<=rightindex)
{
var mid_index=Math.floor((leftindex+rightindex)/2);

var mid_val=arr[mid_index];

if(mid_val>findval)
{
search(arr,findval,leftindex,mid_index-1);
}else if(mid_val<findval)
{
search(arr,findval,mid_index+1,rightindex);
}
else{
document.writeln("您要查找的值的下标是:"+mid_index);
return;
}
}
else
{
document.writeln("您输入有误!");
return;
}
}
var arr=[1,3,4,5,6,7,8,9];
search(arr,4,arr.length-1,0);
//-->
</script>

二.利用循环解决问题

<strong><strong>//利用循环解决问题
<script>
</strong><pre name="code" class="javascript"><strong>  <!--
function search(arr,findval,rightindex)
{    var flag=true;
var leftindex=0;
while(leftindex<=rightindex)
{
var mid_index=Math.floor((leftindex+rightindex)/2);
var mid_val=arr[mid_index];
if(mid_val>findval)
{
rightindex=mid_index-1;
}
else if(mid_val<findval)
{
leftindex=mid_index+1;
}
else if(mid_val=findval)
{    flag=false;
document.writeln("您要查找的值的下标是:"+mid_index);
return;
}
}
if (flag)
{
document.writeln("您查找的值不存在!");
}
}
var arr=[1,3,4,5,6,7,8,9];
search(arr,1,arr.length-1);
//-->
</script></strong>


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: