ट्रैक
/
Delphi Pascal
Delphi Pascal
/
अभ्यास
/
बाइनरी सर्च
बाइनरी सर्च

बाइनरी सर्च

आसान

परिचय

आप गणितज्ञों के एक ऐसे समूह से मिले हैं जो गायक-गीतकार भी हैं। उन्होंने अपनी हर पसंदीदा संख्या के लिए एक गाना लिखा है, और जैसा कि आप अंदाज़ा लगा सकते हैं, उनकी पसंदीदा संख्याएँ बहुत सारी हैं (जैसे 0, 73 या 6174)।

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

आप समझ जाते हैं कि शीर्षक देखकर गाना जल्दी ढूँढने के लिए आप बाइनरी सर्च एल्गोरिदम का उपयोग कर सकते हैं।

निर्देश

आपको एक बाइनरी सर्च एल्गोरिदम लागू करना है।

बाइनरी सर्च एल्गोरिदम किसी ऐरे को बार-बार आधा-आधा बाँटकर उसमें मौजूद एलिमेंट ढूँढ़ता है। हर बार वह सिर्फ उसी आधे हिस्से को रखता है जिसमें ढूँढ़ा जा रहा एलिमेंट मौजूद होता है। इसकी मदद से हम अपने एलिमेंट की संभावित जगहों को जल्दी से सीमित कर लेते हैं, और यह क्रम तब तक चलता है जब तक हमें वह एलिमेंट मिल न जाए या सभी संभावित जगहें खत्म न हो जाएँ।

Caution

बाइनरी सर्च तभी काम करता है जब ऐरे क्रमबद्ध हो।

यह एल्गोरिदम ऐसा काम करता है:

  • क्रमबद्ध ऐरे का बीच वाला एलिमेंट निकालिए और उसकी तुलना उस एलिमेंट से कीजिए जिसे हम ढूँढ़ रहे हैं।
  • अगर बीच वाला एलिमेंट ही हमारा ढूँढ़ा जा रहा एलिमेंट है, तो काम पूरा!
  • अगर बीच वाला एलिमेंट हमारे एलिमेंट से बड़ा है, तो हम उस एलिमेंट को और उसके बाद आने वाले सभी एलिमेंट को बाहर कर सकते हैं।
  • अगर बीच वाला एलिमेंट हमारे एलिमेंट से छोटा है, तो हम उस एलिमेंट को और उसके पहले आने वाले सभी एलिमेंट को बाहर कर सकते हैं।
  • अगर ऐरे का हर एलिमेंट बाहर हो चुका है, तो वह एलिमेंट ऐरे में नहीं है।
  • वरना, ऐरे के जिस हिस्से को बाहर नहीं किया गया है, उस पर यही प्रक्रिया दोहराइए।

यहाँ एक उदाहरण है:

मान लीजिए हम इस क्रमबद्ध ऐरे में संख्या 23 ढूँढ़ रहे हैं: [4, 8, 12, 16, 23, 28, 32].

  • हम 23 की तुलना बीच वाले एलिमेंट 16 से करके शुरू करते हैं।
  • चूँकि 23, 16 से बड़ा है, हम ऐरे का बायाँ आधा हिस्सा बाहर कर सकते हैं, और हमारे पास [23, 28, 32] बचता है।
  • इसके बाद हम 23 की तुलना नए बीच वाले एलिमेंट 28 से करते हैं।
  • चूँकि 23, 28 से छोटा है, हम ऐरे का दायाँ आधा हिस्सा बाहर कर सकते हैं: [23].
  • हमें अपना एलिमेंट मिल गया।

स्रोत

Wikipediaयह लिंक एक नई विंडो या टैब में खुलता है
GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
Delphi Pascal Exercism

बाइनरी सर्च शुरू करने के लिए तैयार हैं?

Exercism पर साइन अप कीजिए और Delphi Pascal को 76 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।