जावास्क्रिप्ट में बाइनरी खोज
बाइनरी खोज एक खोज एल्गोरिथ्म है जिसका उपयोग किसी क्रमबद्ध सूची में किसी विशिष्ट तत्व की स्थिति का पता लगाने के लिए किया जाता है। यह सूची को बार-बार आधे में विभाजित करके काम करता है, जब तक कि वांछित तत्व नहीं मिल जाता है या यह निर्धारित किया जाता है कि तत्व सूची में मौजूद नहीं है।
बाइनरी सर्च कैसे काम करता है?
यह समझने के लिए कि बाइनरी सर्च कैसे काम करता है, आइए एक उदाहरण पर विचार करें। मान लीजिए कि हमारे पास पूर्णांकों की एक क्रमबद्ध सूची है और हम संख्या 37 की स्थिति का पता लगाना चाहते हैं। यहां बताया गया है कि बाइनरी सर्च एल्गोरिदम कैसे काम करेगा:
- सबसे पहले, हम सूची के मध्य तत्व का निर्धारण करते हैं। यदि मध्य तत्व 37 है, तो हम कर चुके हैं और हम तत्व की स्थिति वापस कर देते हैं।
- यदि मध्य तत्व 37 नहीं है, तो हम जाँचते हैं कि क्या यह 37 से अधिक या उससे कम है। यदि यह 37 से अधिक है, तो हम जानते हैं कि वांछित तत्व सूची के बाएँ आधे भाग में होना चाहिए। यदि यह 37 से कम है, तो हम जानते हैं कि वांछित तत्व सूची के दाहिने भाग में होना चाहिए।
- हम सूची के उपयुक्त आधे हिस्से पर प्रक्रिया को तब तक दोहराते हैं जब तक कि तत्व नहीं मिल जाता है या यह निर्धारित नहीं हो जाता है कि तत्व सूची में मौजूद नहीं है।
function binarySearch(arr, x) {
let start = 0;
let end = arr.length - 1;
while (start <= end) {
let mid = Math.floor((start + end) / 2);
if (arr[mid] === x) {
return mid;
}
else if (arr[mid] < x) {
start = mid + 1;
}
else {
end = mid - 1;
}
}
return -1;
}
let arr = [1, 3, 5, 7, 9, 11, 13];
let x = 5;
console.log(binarySearch(arr, x)); // Output: 2
हमें बाइनरी खोज का उपयोग क्यों करना चाहिए?
तो, हमें बाइनरी सर्च का उपयोग क्यों करना चाहिए? बाइनरी खोज के मुख्य लाभों में से एक इसकी समय जटिलता है। सबसे खराब स्थिति में, द्विआधारी खोज की समय जटिलता ओ (लॉग एन) है, जिसका अर्थ है कि यह बड़ी सूचियों के लिए रैखिक खोज (ओ (एन)) से बहुत तेज है। यह बड़े डेटासेट को खोजने के लिए इसे एक कुशल एल्गोरिथम बनाता है।
अंत में, एक क्रमबद्ध सूची में किसी विशिष्ट तत्व की स्थिति को तुरंत खोजने के लिए बाइनरी खोज एक उपयोगी एल्गोरिदम है। इसकी समय जटिलता इसे बड़े डेटासेट खोजने के लिए उपयुक्त बनाती है, और जावास्क्रिप्ट में इसे लागू करना अपेक्षाकृत आसान है।

![क्या एक लिंक्ड सूची है, वैसे भी? [भाग 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































