Array.prototype.binarySearch = function(obj) { var value = 0; var left = 0; var right= this.length; while(left <= right) { var center = Math.floor((left+right)/2); if(this[center] == obj) { value = center; } if(obj < this[center]) { right = center - 1; } else { left = center + 1; } } alert(value); } //如下为测试代码: function testArrayBinarySearch() { var array = new Array(); var key = 678; var number = 1000; for (i = 0; i < number; i++) { array.push(i); } array.binarySearch(key); } window.onload = function() { testArrayBinarySearch(); }
下面是国外的代码 javascript二分法 //Copyright 2009 Nicholas C. Zakas. All rights reserved. //MIT-Licensed, see source file