Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

วิธีที่ดีที่สุดในการค้นหารายการในรายการที่เรียงแล้วใน JavaScript

जहाँ तक सॉर्ट किए गए सरणियों का संबंध है (किसी भी क्रम में), बाइनरी खोज अब तक का सबसे अनुकूलित और कुशल खोज एल्गोरिदम है। हमें एक बाइनरी खोज फ़ंक्शन लिखना होगा जो एक सॉर्ट की गई सरणी के लिटरल्स में एक लक्ष्य की खोज करता है।

हमें उस फ़ंक्शन को 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