作者:18382457909@163.com | 来源:互联网 | 2024-09-30 19:02
12345678910111213141516171819202122232425function binarySearch(items, value){ var sta
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| function binarySearch(items, value){
var startIndex = 0,
stopIndex = items.length - 1,
middle = Math.floor((stopIndex + startIndex)/2);
while(items[middle] != value && startIndex //调整检索范围
if (value stopIndex = middle - 1;
} else if (value > items[middle]){
startIndex = middle + 1;
}
//重新计算中间值
middle = Math.floor((stopIndex + startIndex)/2);
}
//判断是否找到要搜索的值
return (items[middle] != value) ? -1 : middle;
}
var items = ['中国', '德国', '美国', '日本', '法国', '意大利', '英国'];
console.log(binarySearch(items, '德国'));
console.log(binarySearch(items, '法国')); |
这个二分查找英文没问题,但查找中文无法找不准确,看了下这个查找的确是有点问题,谁有比较好的二分查找demo?