जहाँ तक सॉर्ट किए गए सरणियों का संबंध है (किसी भी क्रम में), बाइनरी खोज अब तक का सबसे अनुकूलित और कुशल खोज एल्गोरिदम है। हमें एक बाइनरी खोज फ़ंक्शन लिखना होगा जो एक सॉर्ट की गई सरणी के लिटरल्स में एक लक्ष्य की खोज करता है।
हमें उस फ़ंक्शन को Array ऑब्जेक्ट्स के प्रोटोटाइप प्रॉपर्टी से जोड़ना चाहिए।
ตัวอย่าง
โค้ดสำหรับนี้จะเป็นดังนี้:
const arr = [2, 5, 8, 12, 14, 16, 17, 22, 26, 28, 35, 67, 78, 99];
const target = 22;
Array.prototype.binarySearch = function(target) {
if ( !this.length ) { return false; }
if ( this[0] === target ) { return true; }
var i, mid,
start = 0,
end = this.length,
c = false;
while ( c = (i = this[mid = start+((end-start)>>1)]) !== target ) {
i < target ? (start = mid) : (end = mid);
if (start >= end - 1) { break; }
}
return !c;
};
console.log(arr.binarySearch(target));
ผลลัพธ์
ผลลัพธ์ในคอนโซลจะเป็นดังนี้:
true