बाइनरी सर्च जावास्क्रिप्ट

| | | | | | |

जावास्क्रिप्ट में बाइनरी खोज को कैसे कोडित करें

खोज एल्गोरिदम एक प्रोग्रामर के जीवन को बहुत सुविधाजनक बनाता है। इससे दसियों, सैकड़ों, या हज़ारों आइटम के डेटासेट में किसी विशेष आइटम को खोजना आसान हो जाता है।

खोज के सबसे लोकप्रिय रूपों में से एक द्विआधारी खोज है। यह खोज जल्दी से एक सरणी में एक तत्व ढूंढती है। हर बार जब खोज किसी आइटम की जांच करती है, तो वह खोजने के लिए आइटम की संख्या को आधा कर देती है।

इस मार्गदर्शिका में, हम इस बारे में बात करेंगे कि बाइनरी खोजें क्या हैं और वे कैसे काम करती हैं। इसके बाद, हम दो अलग-अलग दृष्टिकोणों का उपयोग करके बाइनरी खोज को लागू करने के लिए आगे बढ़ेंगे: पुनरावृत्त और पुनरावर्ती।

आइए !

द्विआधारी खोज क्या है?

द्विआधारी खोज एक कंप्यूटर एल्गोरिथम है जो एक क्रमबद्ध सरणी में एक तत्व की खोज करता है।

किसी सरणी के बीच में प्रारंभ करें और जांचें कि क्या मध्य तत्व उस संख्या से कम, बराबर या अधिक है जिसे आप ढूंढ रहे हैं।

यदि संख्या छोटी है, तो एल्गोरिथम जानता है कि सरणी के बाएं आधे हिस्से में कैसे देखना है, जहां छोटी संख्याएं हैं; यदि संख्या अधिक है, तो एल्गोरिथम सरणी के दाहिने आधे हिस्से पर ध्यान केंद्रित करेगा। बाइनरी खोजें केवल ऑर्डर की गई सूचियों पर काम करती हैं।

बाइनरी खोजें रैखिक खोजों की तुलना में अधिक कुशल होती हैं। वास्तव में, हर बार जब कोई खोज की जाती है, तो सूची में पाई जाने वाली शेष वस्तुओं की संख्या आधी हो जाती है।

इस उदाहरण में, 8 बराबर नहीं है 9. हमारी खोज जारी है।

तो हमें तुलना करनी होगी कि क्या बीच में संख्या 9 से अधिक है। यह नहीं है। क्रमांकित सूची में संख्या 9 8 से अधिक है। हमारी प्रारंभिक संख्या को केंद्रीय संख्या के बराबर सेट करें। ऐसा इसलिए है क्योंकि हम जानते हैं कि हम जिस संख्या की तलाश कर रहे हैं वह केंद्रीय संख्या से पहले नहीं आती है।

यदि हम जिस संख्या की तलाश कर रहे हैं वह अधिक बेबी है, तो हम अंतिम संख्या को मध्य संख्या के बराबर सेट करेंगे। चूंकि संख्या मध्य संख्या से छोटी है, इसलिए हम अपनी खोज को सूची के निचले आधे हिस्से पर केंद्रित कर सकते हैं।

द्विआधारी खोज सूची के शीर्ष आधे भाग में फिर से दोहराई जाती है क्योंकि 9 8 से बड़ा है:

<तालिका c lass = "wp-block-table cours- info-table">

प्रारंभ < td> मध्यम समाप्त 2 6 8 < /td> 9 10

आइए केंद्रीय संख्या खोजें। वह 9 है। हम 9 की तुलना उस संख्या से कर सकते हैं जिसे हम ढूंढ रहे हैं। 9 उस संख्या के बराबर है जिसकी हम तलाश कर रहे हैं।

इसका मतलब है कि हमारा शोध रुक सकता है। हम अपनी सूची में नंबर 9 खोजने में कामयाब रहे!

जावास्क्रिप्ट में बाइनरी खोज कैसे कार्यान्वित करें

बाइनरी खोजों को पुनरावृत्त या पुनरावर्ती दृष्टिकोण का उपयोग करके कार्यान्वित किया जा सकता है।

पुनरावृत्तीय बाइनरी खोज

एक पुनरावृत्त बाइनरी खोज सूची में किसी आइटम को खोजने के लिए थोड़ी देर के लूप का उपयोग करती है। यह लूप तब तक चलेगा जब तक आइटम सूची में नहीं मिल जाता है या जब तक सूची की खोज नहीं हो जाती है। / "> फ़ंक्शन जो हमारी बाइनरी खोज करता है:

आइए दो चर परिभाषित करके शुरू करते हैं: प्रारंभ और अंत। ये उच्चतम और निम्नतम मूल्यों का ट्रैक रखते हैं - हमारा शोध काम कर रहा है। हम एक जबकि लूप का उपयोग करते हैं जो तब तक चलता है जब तक कि प्रारंभ संख्या अंतिम संख्या से अधिक न हो। यह लूप सूची के प्रारंभ और अंत के बीच की मध्यवर्ती संख्या की गणना करता है।

यदि हम जिस संख्या की तलाश कर रहे हैं वह बीच में संख्या के बराबर है, तो बीच की संख्या हमारे मुख्य कार्यक्रम में वापस आ जाती है। संख्या छोटी है, बीज मान मध्य संख्या प्लस 1 के बराबर पर सेट है। ये तुलना if कथन का उपयोग करके की जाती है।

अन्यथा, अंतिम संख्या मध्य संख्या शून्य से एक होने के लिए सेट है। यदि लूप को निष्पादित करने के बाद हमारा नंबर नहीं मिलता है, तो यह -1 लौटाता है। हम इसे मूल स्थिति कहते हैं। हमारे मुख्य कार्यक्रम में, हम `जांचेगा कि लौटाया गया नंबर -1 के बराबर है या नहीं। इसका मतलब है कि हमारा नंबर नहीं मिला।

हमारा फ़ंक्शन अभी तक काम नहीं करता है। हमें इसे नाम देने के लिए एक मुख्य प्रोग्राम लिखना होगा:

हमने खोजने के लिए संख्याओं की एक सूची और वह संख्या निर्धारित की है जिसे हम अपनी सूची में खोजना चाहते हैं। इसके बाद, हमने बाइनरीसर्च फ़ंक्शन को कॉल किया। यह हमारा शोध करेगा। खोज वापस आ जाएगी -1 या उस तत्व की स्थिति जिसे हम ढूंढ रहे हैं।

-1 इंगित करता है कि कोई आइटम नहीं मिला। यदि कोई तत्व नहीं मिलता है, तो हमारे और स्टेटमेंट की सामग्री को निष्पादित किया जाता है। अन्यथा, if स्टेटमेंट की सामग्री को निष्पादित किया जाता है।

आइए अपना कोड चलाते हैं:

यह हमें बताता है कि हमारी खोज सफल रही!

पुनरावर्ती बाइनरी खोज

h3>

पुनरावर्ती बाइनरी खोज को पुनरावृत्त खोज की तुलना में अधिक सुरुचिपूर्ण माना जाता है। ऐसा इसलिए है क्योंकि बाइनरी सर्च एक ही ऑपरेशन को एक सूची में बार-बार करते हैं। यह व्यवहार रिकर्सन एल्गोरिथम का उपयोग करके कार्यान्वित किया जा सकता है।

एक नई जावास्क्रिप्ट फ़ाइल खोलें और इस कोड को पेस्ट करें:

यह कोड हमारी पहली खोज की तरह ही तुलना करता है। जांचें कि क्या बीच की संख्या हमारे द्वारा खोजी जा रही संख्या के बराबर, अधिक या कम है।

हमारे फ़ंक्शन , हमने एक if स्टेटमेंट का उपयोग यह जांचने के लिए किया कि क्या शुरुआती संख्या अंतिम संख्या से अधिक है। यदि ऐसा है, तो इसका मतलब है कि हमारा आइटम हमारे द्वारा निर्दिष्ट सूची में नहीं मिला था। इस मामले में, हम -1 को मुख्य कार्यक्रम में वापस कर रहे हैं। हम जिस संख्या की तलाश कर रहे हैं वह केंद्रीय संख्या से अधिक या कम है, हमारे द्विआधारी खोज फ़ंक्शन को फिर से निष्पादित किया जाता है। यह तब तक जारी रहता है जब तक कि हमारा तत्व नहीं मिल जाता।

इस फ़ंक्शन को करने के लिए, हमें आवश्यकता होगी हमारे मुख्य कार्यक्रम में संशोधन करें:

हमें दो और पैरामीटर पास करने होंगे: "स्टार्ट" और "एंड" के मान। "प्रारंभ" का मान 0 के बराबर है। "अंत" का मान सूची की लंबाई घटा एक के बराबर है।

आइए अपना कोड चलाते हैं और देखते हैं कि क्या होता है:

हमारी बाइनरी खोज सफल रही! यह उसी अंतर्निहित एल्गोरिदम का उपयोग पुनरावृत्त दृष्टिकोण के रूप में करता है। अंतर यह है कि बाइनरी सर्च एक फ़ंक्शन का उपयोग करके किया जाता है जिसे आइटम मिलने तक या सूची में खोज पूरी होने तक, जो भी पहले आता है।

निष्कर्ष

द्विआधारी खोज सूची में किसी आइटम को खोजना आसान बनाती है। हर बार जब कोई खोज की जाती है, तो सूची में मिलने वाली शेष वस्तुओं की संख्या आधे से कम हो जाती है। यह रैखिक खोज की तुलना में बाइनरी खोज को अधिक कुशल बनाता है।

अब आप इसके लिए तैयार हैं एक विशेषज्ञ की तरह जावास्क्रिप्ट में द्विआधारी खोज लागू करें!

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method