बाइनरी खोज बनाम अन्य खोज योजनाएं कैसी हैं?द्विआधारी खोज के साथ क्रमबद्ध सरणियाँ एक बहुत ही अक्षम समाधान है जब सम्मिलन और विलोपन संचालन को पुनर्प्राप्ति के साथ इंटरलीव किया जाता है,

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

रैखिक खोज:

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

पेड़:

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

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

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

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

सदस्यता एल्गोरिदम सेट करें:
खोज से संबंधित समस्या सेट सदस्यता है। कोई भी एल्गोरिद्म जो लुकअप करता है, जैसे बाइनरी खोज, का उपयोग सेट सदस्यता के लिए भी किया जा सकता है। अन्य एल्गोरिदम हैं जो विशेष रूप से सेट सदस्यता के लिए अनुकूल हैं। चाबियों की सीमा सीमित होने पर बिट सरणी सबसे सरल, उपयोगी होती है। यह बिट्स के संग्रह को कॉम्पैक्ट रूप से संग्रहीत करता है, जिसमें प्रत्येक बिट चाबियों की सीमा के भीतर एक कुंजी का प्रतिनिधित्व करता है। बिट सरणियाँ बहुत तेज़ होती हैं, केवल आवश्यकता होती है
O(1) समय। Judy1 प्रकार की Judy सरणी 64-बिट कुंजियों को कुशलतापूर्वक संभालती है।

अनुमानित परिणामों के लिए, ब्लूम फ़िल्टर, हैशिंग पर आधारित एक अन्य संभाव्य डेटा संरचना, बिट सरणी और एकाधिक हैश फ़ंक्शंस का उपयोग करके कुंजियों को एन्कोड करके कुंजियों का एक सेट संग्रहीत करता है। अधिकांश मामलों में ब्लूम फ़िल्टर बिट सरणियों की तुलना में अधिक स्थान-कुशल होते हैं और बहुत धीमे नहीं होते हैं: with
k हैश फ़ंक्शंस, सदस्यता प्रश्नों के लिए केवल आवश्यकता होती है
 ओ (के) समय। हालाँकि, ब्लूम फ़िल्टर झूठी सकारात्मकता से ग्रस्त हैं।

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