रैखिक खोज और बाइनरी खोज के बीच अंतर
विषय
रैखिक खोज और द्विआधारी खोज दो तरीके हैं जिनके लिए सरणियों में उपयोग किया जाता है खोज कर अवयव। खोज किसी भी क्रम में या यादृच्छिक रूप से संग्रहीत तत्वों की सूची के भीतर एक तत्व खोजने की एक प्रक्रिया है।
रैखिक खोज और बाइनरी खोज के बीच प्रमुख अंतर यह है कि द्विआधारी खोज में तत्वों की क्रमबद्ध सूची से किसी तत्व को खोजने के लिए कम समय लगता है। इसलिए यह अनुमान लगाया जाता है कि द्विआधारी खोज विधि की दक्षता रैखिक खोज से अधिक है।
दोनों के बीच एक और अंतर यह है कि द्विआधारी खोज के लिए एक शर्त है, अर्थात, तत्व होने चाहिए क्रमबद्ध जबकि रैखिक खोज में ऐसी कोई शर्त नहीं है। यद्यपि दोनों खोज विधियां विभिन्न तकनीकों का उपयोग करती हैं जो नीचे चर्चा की गई हैं।
- तुलना चार्ट
- परिभाषा
- मुख्य अंतर
- निष्कर्ष
तुलना चार्ट
तुलना के लिए आधार | रैखिक खोज | द्विआधारी खोज |
---|---|---|
समय जटिलता | पर) | हे (लॉग 2 एन) |
सबसे अच्छा मामला समय | पहला तत्व हे (1) | केंद्र तत्व हे (1) |
किसी सरणी के लिए पूर्वापेक्षा | जरूरत नहीं | एरियर को क्रमबद्ध क्रम में होना चाहिए |
तत्वों की एन संख्या के लिए सबसे खराब मामला | एन तुलना की आवश्यकता है | केवल लॉग के बाद निष्कर्ष निकाल सकते हैं2 एन तुलना |
पर लागू किया जा सकता है | एरे और लिंक्ड सूची | लिंक की गई सूची पर सीधे लागू नहीं किया जा सकता है |
ऑपरेशन डालें | आसानी से सूची के अंत में डाला गया | क्रमबद्ध सूची को बनाए रखने के लिए इसके उचित स्थान पर प्रसंस्करण की आवश्यकता होती है। |
एल्गोरिथम प्रकार | स्वभाव में निष्क्रिय | प्रकृति में फूट डालो और जीतो |
उपयोगिता | उपयोग करने के लिए आसान और किसी भी आदेशित तत्वों की आवश्यकता नहीं है। | किसी भी तरह मुश्किल एल्गोरिथ्म और तत्वों को व्यवस्थित किया जाना चाहिए। |
कोड की पंक्तियाँ | कम | अधिक |
रैखिक खोज की परिभाषा
एक रेखीय खोज में, सरणी के प्रत्येक तत्व को तार्किक क्रम में एक-एक करके पुनर्प्राप्त किया जाता है और यह जांचा जाता है कि यह वांछित तत्व है या नहीं। सभी तत्वों तक पहुंचने पर एक खोज असफल हो जाएगी, और वांछित तत्व नहीं मिला है। सबसे खराब स्थिति में, एक औसत मामले की संख्या हमें सरणी के आकार (एन / 2) के आधे हिस्से को स्कैन करने की हो सकती है।
इसलिए रैखिक खोज को उस तकनीक के रूप में परिभाषित किया जा सकता है जो दी गई वस्तु का पता लगाने के लिए क्रमिक रूप से सरणी का पता लगाती है। नीचे दिया गया कार्यक्रम खोज का उपयोग करके सरणी के एक तत्व की खोज को दिखाता है।
दक्षता रैखिक खोज का
खोज तालिका में रिकॉर्ड की खोज में किए गए समय की खपत या तुलना की संख्या तकनीक की दक्षता निर्धारित करती है। यदि वांछित तालिका खोज तालिका की पहली स्थिति में मौजूद है, तो केवल एक तुलना की जाती है। जब वांछित रिकॉर्ड अंतिम होता है, तो एन तुलना करना पड़ता है। यदि रिकॉर्ड खोज तालिका में कहीं प्रस्तुत करना है, तो औसतन, तुलना की संख्या (n + 1/2) होगी। इस तकनीक की सबसे खराब स्थिति O (n) है जो निष्पादन के क्रम के लिए है।
C कार्यक्रम रैखिक खोज तकनीक के साथ एक तत्व की खोज करने के लिए।
#शामिल बाइनरी खोज एक अत्यंत कुशल एल्गोरिथ्म है। यह खोज तकनीक दी गई वस्तु को न्यूनतम संभव तुलना में खोजने में कम समय लगाती है। बाइनरी खोज करने के लिए, पहले, हमें एरे तत्वों को सॉर्ट करना होगा। इस तकनीक के पीछे तर्क नीचे दिया गया है: तीन मामले सामने आ सकते हैं: जब तक कोई तत्व नहीं मिलता है या खोज क्षेत्र में निकास नहीं होता है तब तक वही चरण दोहराएं। इस एल्गोरिथ्म में, हर बार खोज क्षेत्र कम हो रहा है। इसलिए तुलना की संख्या सबसे अधिक लॉग (एन + 1) पर है। नतीजतन, यह रैखिक खोज की तुलना में एक कुशल एल्गोरिदम है, लेकिन बाइनरी खोज करने से पहले सरणी को क्रमबद्ध करना पड़ता है। C कार्यक्रम द्विआधारी खोज तकनीक के साथ एक तत्व खोजने के लिए। #शामिल रैखिक और द्विआधारी खोज एल्गोरिदम दोनों आवेदन के आधार पर उपयोगी हो सकते हैं। जब कोई सरणी डेटा संरचना होती है और तत्वों को क्रमबद्ध क्रम में व्यवस्थित किया जाता है, तो बाइनरी खोज को प्राथमिकता दी जाती है शीघ्रखोज कर। यदि लिंक की गई सूची डेटा संरचना है, भले ही तत्वों की व्यवस्था कैसे की जाए, तो द्विआधारी खोज एल्गोरिथ्म के प्रत्यक्ष कार्यान्वयन की अनुपलब्धता के कारण रैखिक खोज को अपनाया जाता है। विशिष्ट बाइनरी सर्च एल्गोरिदम को लिंक्ड सूची में नियोजित नहीं किया जा सकता है क्योंकि लिंक्ड सूची प्रकृति में गतिशील है और यह ज्ञात नहीं है कि मध्य तत्व वास्तव में कहाँ सौंपा गया है। इसलिए, द्विआधारी खोज एल्गोरिदम की भिन्नता को डिजाइन करने की आवश्यकता है जो लिंक की गई सूची पर भी काम कर सकती है क्योंकि बाइनरी खोज रैखिक खोज की तुलना में निष्पादन में तेज है।बाइनरी सर्च की परिभाषा
निष्कर्ष