javascript 折半查找字符在数组中的位置(有序列表) |
本文标签:数组,折半查找 复制代码 代码如下: /** * 折半查找字符在数组中的位置(有序列表) * @param array 被检索的数组 * @param x 要查找的字符 * @type int * @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)); |