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

| | | | | | |

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

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

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

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

आइए !

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

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

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

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

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

इस उदाहरण में, 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 के बराबर है। "अंत" का मान सूची की लंबाई घटा एक के बराबर है।

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

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

निष्कर्ष

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

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

हमें उम्मीद है कि इस लेख ने समस्या को हल करने में आपकी मदद की है। बाइनरी सर्च जावास्क्रिप्ट के अलावा, अन्य exp-संबंधित विषयों की जाँच करें।

पायथन में उत्कृष्टता प्राप्त करना चाहते हैं? सर्वश्रेष्ठ पायथन ऑनलाइन पाठ्यक्रम 2022 की हमारी समीक्षा देखें। यदि आप डेटा विज्ञान में रुचि रखते हैं, तो यह भी देखें कि R में प्रोग्रामिंग कैसे सीखें

वैसे, यह सामग्री अन्य भाषाओं में भी उपलब्ध है:

<उल>
  • बाइनरी सर्च जावास्क्रिप्ट
  • Italiano बाइनरी सर्च जावास्क्रिप्ट
  • Deutsch बाइनरी सर्च जावास्क्रिप्ट
  • Français बाइनरी सर्च जावास्क्रिप्ट
  • Español बाइनरी सर्च जावास्क्रिप्ट
  • Türk बाइनरी सर्च जावास्क्रिप्ट
  • Русский बाइनरी सर्च जावास्क्रिप्ट
  • Português बाइनरी सर्च जावास्क्रिप्ट
  • Polski बाइनरी सर्च जावास्क्रिप्ट
  • Nederlandse बाइनरी सर्च जावास्क्रिप्ट
  • 中文 बाइनरी सर्च जावास्क्रिप्ट
  • 한국어 बाइनरी सर्च जावास्क्रिप्ट
  • 日本語 बाइनरी सर्च जावास्क्रिप्ट
  • हिन्दी बाइनरी सर्च जावास्क्रिप्ट


  • Schneider Chamberlet

    Vigrinia | 2022-12-01

    सीधे शब्दों में कहें और साफ़ करें। साझा करने के लिए धन्यवाद। बाइनरी सर्च जावास्क्रिप्ट और JavaScript के साथ अन्य समस्याएं हमेशा मेरी कमजोर बिंदु थीं. मेरे स्नातक थीसिस में इसका इस्तेमाल करेंगे

    Ken Jackson

    Rome | 2022-12-01

    मैं अपने कोडिंग साक्षात्कार की तैयारी कर रहा था, इसे स्पष्ट करने के लिए धन्यवाद - पायथन में बाइनरी सर्च जावास्क्रिप्ट सबसे सरल नहीं है. मुझे पूरा यकीन नहीं है कि यह सबसे अच्छी विधि है

    Schneider Schteiner

    Berlin | 2022-12-01

    मैं अपने कोडिंग साक्षात्कार की तैयारी कर रहा था, इसे स्पष्ट करने के लिए धन्यवाद - पायथन में बाइनरी सर्च जावास्क्रिप्ट सबसे सरल नहीं है. कल चेक किया गया, यह काम करता है!

    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

    Common xlabel/ylabel for matplotlib subplots

    12 answers

    NUMPYNUMPY

    How to specify multiple return types using type-hints

    12 answers

    NUMPYNUMPY

    Why do I get "Pickle - EOFError: Ran out of input" reading an empty file?

    12 answers

    NUMPYNUMPY

    Flake8: Ignore specific warning for entire file

    12 answers

    NUMPYNUMPY

    glob exclude pattern

    12 answers

    NUMPYNUMPY

    How to avoid HTTP error 429 (Too Many Requests) python

    12 answers

    NUMPYNUMPY

    Python CSV error: line contains NULL byte

    12 answers

    NUMPYNUMPY

    csv.Error: iterator should return strings, not bytes

    12 answers


    Wiki

    Python | How to copy data from one Excel sheet to another

    Common xlabel/ylabel for matplotlib subplots

    Check if one list is a subset of another in Python

    sin

    How to specify multiple return types using type-hints

    exp

    Printing words vertically in Python

    exp

    Python Extract words from a given string

    Cyclic redundancy check in Python

    Finding mean, median, mode in Python without libraries

    cos

    Python add suffix / add prefix to strings in a list

    Why do I get "Pickle - EOFError: Ran out of input" reading an empty file?

    Python - Move item to the end of the list

    Python - Print list vertically