一.利用函数的递归解决问题
//二分查找法
//封装成一个函数
<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>