javascript

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
/**
  * 折半查找字符在数组中的位置(有序列表)
  * @param array 被检索的数组
  * @param x  要查找的字符
  * @returns 字符在数组中的位置,没找到返回-1  
  */   

function binarySearch(array,x){ 
  var lowPoint=1;                     
 var higPoint=array.length;
 var returnValue=-1;                
 var midPoint;
 var found=false;                   
 while ((lowPoint<=higPoint)&&(!found)){
  midPoint=Math.ceil((lowPoint+higPoint)/2); 
  //console.log(lowPoint+"===="+midPoint+"===="+higPoint);
  if(x>array[midPoint-1]){
   lowPoint=midPoint+1;
  }
  else if(x<array[midPoint-1]){
   higPoint= midPoint-1;
  }
  else if(x=array[midPoint-1]){
   found=true;
  }

 } 
 if(found){
    returnValue=midPoint;
 }
 return returnValue;
}
/*var array2=[1,2,3,4,5,6,7,8,9,100,109];*/
var array2=['a','b','c','d','e','f','g'];
console.log(binarySearch(array2,'c'));

posted on 2010-12-08 17:45  流浪啊  阅读(378)  评论(0编辑  收藏  举报