रैखिक और द्विआधारी खोज एल्गोरिदम समझाया गया

रैखिक और द्विआधारी खोज एल्गोरिदम समझाया गया

कुछ डेटा खोजने की क्षमता कंप्यूटर विज्ञान का एक महत्वपूर्ण पहलू है। डेटा सेट में किसी विशेष आइटम को देखने के लिए खोज एल्गोरिदम का उपयोग किया जाता है।





एल्गोरिदम एक खोज क्वेरी के लिए एक बूलियन परिणाम (सत्य या गलत) लौटाता है। पाया मूल्य की सापेक्ष स्थिति देने के लिए उन्हें संशोधित भी किया जा सकता है।





इस आलेख के लिए, एल्गोरिदम यह निर्धारित करने पर ध्यान केंद्रित करेगा कि कोई मान मौजूद है या नहीं।





रैखिक खोज एल्गोरिदम

रैखिक खोज को अनुक्रमिक खोज के रूप में भी जाना जाता है। इस प्रकार की खोज में, सूची में प्रत्येक मान को एक-एक करके क्रमबद्ध तरीके से देखा जाता है, जबकि यह जांचा जाता है कि वांछित मान मौजूद है या नहीं।

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



एक अनुक्रमिक खोज एल्गोरिथ्म मूल्यों की सूची और सूची में वांछित आइटम को इसके मापदंडों के रूप में लेता है। वापसी परिणाम के रूप में आरंभ किया गया है झूठा और बदल जाएगा सत्य जब वांछित मूल्य मिल जाता है।

एक उदाहरण के रूप में नीचे दिए गए पायथन कार्यान्वयन को देखें:





def linearSearch(mylist, item):
found = False
index = 0
while index if mylist[index] == item:
found = True
else:
index = index+1
return found

एल्गोरिथम विश्लेषण

सबसे अच्छी स्थिति तब होती है जब वांछित वस्तु सूची में सबसे पहले होती है। सबसे खराब स्थिति तब होती है जब वांछित वस्तु सूची में अंतिम (nth आइटम) होती है। इसलिए, रैखिक खोज के लिए समय जटिलता ओ (एन) है।

उपरोक्त एल्गोरिथम में औसत मामला परिदृश्य n/2 है।





सम्बंधित: बिग-ओ नोटेशन क्या है?

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

पीसी पर फोन गेम कैसे खेलें

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

दी गई सूची में 19 खोजने का एक उदाहरण लें: [2, 5, 6, 11, 15, 18, 23, 27, 34]। 23 पर पहुंचने के बाद, यह स्पष्ट हो जाएगा कि जिस वस्तु की तलाश की जा रही है वह सूची में मौजूद नहीं है। इसलिए, सूची के बाकी आइटमों की खोज जारी रखना अब महत्वपूर्ण नहीं होगा।

बाइनरी सर्च एल्गोरिदम

आपने देखा है कि कैसे एक आदेशित सूची आवश्यक गणना को कम कर सकती है। बाइनरी सर्च एल्गोरिथम इस दक्षता का और भी अधिक लाभ उठाता है जो एक ऑर्डर की गई सूची का परिचय देता है।

एल्गोरिथम एक ऑर्डर की गई सूची के मध्य मान को लेकर शुरू होता है और जांचता है कि यह वांछित मूल्य है या नहीं। यदि ऐसा नहीं है, तो मान की जाँच की जाती है कि क्या यह वांछित मान से कम या अधिक है।

यदि यह कम है, तो सूची के निचले आधे हिस्से की जांच करने की कोई आवश्यकता नहीं है। अन्यथा, यदि यह बड़ा है, तो यह सूची के ऊपरी भाग में चला जाता है।

संबंधित: रिकर्सन क्या है और आप इसका उपयोग कैसे करते हैं?

चाहे जो भी सबलिस्ट (बाएं या दाएं) चुना जाए, मध्य मान फिर से निर्धारित किया जाएगा। यदि यह आवश्यक मान है तो मान को फिर से चेक किया जाता है। यदि ऐसा नहीं है, तो यह जांचा जाता है कि यह अनुरोधित मान से कम है या अधिक।

आप एक कंप्यूटर से दूसरे कंप्यूटर में फाइल कैसे ट्रांसफर करते हैं?

यह प्रक्रिया तब तक दोहराई जाती है जब तक कोई मान नहीं मिल जाता है।

नीचे दिया गया पायथन कार्यान्वयन बाइनरी सर्च एल्गोरिथम के लिए है।

डीईएफ़ बाइनरीसर्च (मेरी सूची, आइटम):

low = 0
high = len(mylist) - 1
found = False
while low <= high and not found: mid = (low + high) // 2
if mylist[mid] == item:found = True
elif item else:low = mid + 1
return found

एल्गोरिथम विश्लेषण

सबसे अच्छी स्थिति तब होती है जब वांछित वस्तु मध्य वस्तु पाई जाती है। हालांकि सबसे खराब स्थिति इतनी सीधी नहीं है। नीचे दिए गए विश्लेषण का पालन करें:

पहली तुलना के बाद, n/2 आइटम बचे रहेंगे। सेकंड के बाद, n/4 आइटम बचे रहेंगे। तीसरे के बाद, n/8।

ध्यान दें कि वस्तुओं की संख्या तब तक आधी होती रहती है जब तक कि वे n/2i तक नहीं पहुंच जाती, जहां i तुलनाओं की संख्या है। सभी बंटवारे के बाद, हम केवल 1 आइटम के साथ समाप्त होते हैं।

यह संकेत करता है:

n/2i=1 इसलिए, द्विआधारी खोज O(log n) है।

छँटाई के लिए आगे बढ़ना

द्विआधारी खोज में, हमने एक ऐसे मामले पर विचार किया जहां दिए गए सरणी को पहले से ही आदेश दिया गया था। लेकिन मान लीजिए कि आपके पास एक अनियंत्रित डेटासेट था और आप उस पर बाइनरी सर्च करना चाहते थे। आप क्या करेंगे?

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

साझा करना साझा करना कलरव ईमेल चयन क्रम का उपयोग कैसे करें

शुरुआती लोगों के लिए चयन प्रकार को समझना थोड़ा मुश्किल है, लेकिन एक बार जब आप चीजों को स्विंग कर लेते हैं तो यह बहुत चुनौतीपूर्ण नहीं होता है।

आगे पढ़िए
संबंधित विषय
  • प्रोग्रामिंग
  • तकनीक की व्याख्या
  • प्रोग्रामिंग
  • एल्गोरिदम
  • डेटा विश्लेषण
लेखक के बारे में जेरोम डेविडसन(22 लेख प्रकाशित)

जेरोम MakeUseOf में स्टाफ राइटर हैं। वह प्रोग्रामिंग और लिनक्स पर लेख शामिल करता है। वह एक क्रिप्टो उत्साही भी है और हमेशा क्रिप्टो उद्योग पर नजर रखता है।

जेरोम डेविडसन की और फ़िल्में या टीवी शो

हमारे न्यूज़लेटर की सदस्यता लें

तकनीकी युक्तियों, समीक्षाओं, निःशुल्क ई-पुस्तकों और अनन्य सौदों के लिए हमारे न्यूज़लेटर से जुड़ें!

सब्सक्राइब करने के लिए यहां क्लिक करें