द्विआधारी खोज बनाम रैखिक खोज
रैखिक खोज, जिसे अनुक्रमिक खोज के रूप में भी जाना जाता है, सरलतम खोज एल्गोरिथम है। यह सूची में प्रत्येक तत्व की जांच करके सूची में निर्दिष्ट मान की खोज करता है। बाइनरी सर्च भी एक विधि है जिसका उपयोग क्रमबद्ध सूची में निर्दिष्ट मान का पता लगाने के लिए किया जाता है। बाइनरी खोज विधि सूची में दिए गए आइटम का पता लगाने में लगने वाले समय को कम करते हुए (प्रत्येक पुनरावृत्ति में) चेक किए गए तत्वों की संख्या को आधा कर देती है।
रैखिक खोज क्या है?
रैखिक खोज सबसे सरल खोज विधि है, जो सूची में प्रत्येक तत्व की क्रमिक रूप से जांच करती है जब तक कि उसे एक निर्दिष्ट तत्व नहीं मिल जाता।रैखिक खोज पद्धति का इनपुट एक अनुक्रम (जैसे कि एक सरणी, संग्रह या एक स्ट्रिंग) और वह आइटम है जिसे खोजने की आवश्यकता है। आउटपुट सही है यदि निर्दिष्ट आइटम प्रदान किए गए अनुक्रम के भीतर है या गलत है यदि यह अनुक्रम में नहीं है। चूंकि यह विधि सूची में प्रत्येक आइटम को तब तक जांचती है जब तक कि निर्दिष्ट आइटम नहीं मिल जाता है, सबसे खराब स्थिति में यह आवश्यक तत्व खोजने से पहले सूची में सभी तत्वों से गुजरेगा। रैखिक खोज की जटिलता ओ (एन) है। इसलिए इसे बड़ी सूचियों में तत्वों की खोज करते समय उपयोग करने में बहुत धीमा माना जाता है। लेकिन यह बहुत ही सरल और लागू करने में आसान है।
द्विआधारी खोज क्या है?
द्विआधारी खोज भी एक विधि है जिसका उपयोग क्रमबद्ध सूची में निर्दिष्ट आइटम को खोजने के लिए किया जाता है। यह विधि खोजे गए तत्व की सूची के बीच के तत्वों से तुलना करके शुरू होती है। यदि तुलना निर्धारित करती है कि दो तत्व समान हैं, तो विधि रुक जाती है और तत्व की स्थिति लौटा देती है। यदि खोजा गया तत्व मध्य तत्व से बड़ा है, तो यह क्रमबद्ध सूची के केवल निचले आधे हिस्से का उपयोग करके विधि को फिर से शुरू करता है।यदि खोजा गया तत्व मध्य तत्व से कम है, तो यह क्रमबद्ध सूची के केवल शीर्ष आधे हिस्से का उपयोग करके विधि को फिर से शुरू करता है। यदि खोजा गया तत्व सूची में नहीं है, तो विधि एक अद्वितीय मान लौटाएगी जो यह दर्शाता है। इसलिए द्विआधारी खोज विधि तुलना के परिणाम के आधार पर (प्रत्येक पुनरावृत्ति में) तुलना किए गए तत्वों की संख्या को आधा कर देती है। नतीजतन, द्विआधारी खोज लॉगरिदमिक समय में चलती है जिसके परिणामस्वरूप ओ (लॉग एन) औसत केस प्रदर्शन होता है।
बाइनरी सर्च और लीनियर सर्च में क्या अंतर है?
भले ही लीनियर सर्च और बाइनरी सर्च दोनों ही सर्च के तरीके हैं, लेकिन इनमें कई अंतर हैं। जबकि बाइनरी सर्च सॉर्ट की गई सूचियों पर काम करता है, लाइनर सर्च अनसोल्ड लिस्ट पर भी काम कर सकता है। किसी सूची को छांटने में आम तौर पर n लॉग n की औसत केस जटिलता होती है। रैखिक खोज बाइनरी खोज की तुलना में लागू करने के लिए सरल और सीधी है। लेकिन, रेखीय खोज अपने ओ (एन) औसत केस प्रदर्शन के कारण बड़ी सूचियों के साथ उपयोग करने के लिए बहुत धीमी है।दूसरी ओर, द्विआधारी खोज को एक अधिक कुशल विधि माना जाता है जिसका उपयोग बड़ी सूचियों के साथ किया जा सकता है। लेकिन द्विआधारी खोज को लागू करना काफी मुश्किल हो सकता है और एक अध्ययन से पता चला है कि द्विआधारी खोज के लिए सटीक कोड बीस में से केवल पांच पुस्तकों में पाया जा सकता है।