डेटा संरचना खोज

कंप्यूटर विज्ञान में, एक खोज डेटा संरचना कोई भी डेटा संरचना है जो वस्तुओं के एक सेट (गणित) से विशिष्ट वस्तुओं की कुशल डेटा पुनर्प्राप्ति की अनुमति देती है, जैसे डेटाबेस से एक विशिष्ट रिकॉर्ड (कंप्यूटर विज्ञान)।

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

'स्थैतिक' खोज संरचनाएं एक निश्चित डेटाबेस पर कई सूचना पुनर्प्राप्ति का उत्तर देने के लिए डिज़ाइन की गई हैं; 'गतिशील' संरचनाएं क्रमिक प्रश्नों के बीच आइटमों को सम्मिलित करने, हटाने या अद्यतन (एसक्यूएल)  की भी अनुमति देती हैं। गतिशील मामले में, किसी को डेटाबेस में परिवर्तनों को ध्यान में रखते हुए खोज संरचना को ठीक करने की लागत पर भी विचार करना चाहिए।

वर्गीकरण
सबसे सरल प्रकार की क्वेरी एक रिकॉर्ड का पता लगाना है जिसमें एक निर्दिष्ट मान के बराबर एक विशिष्ट फ़ील्ड (कुंजी) होती है। अन्य सामान्य प्रकार की क्वेरी में सबसे छोटी (या सबसे बड़ी) कुंजी मान वाला आइटम ढूंढें, सबसे बड़ी कुंजी वाला आइटम ढूंढें मान v से अधिक न हो, निर्दिष्ट सीमा v के बीच मुख्य मान वाले सभी आइटम ढूंढेंmin और वीmax.

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

उत्तरार्द्ध का एक सामान्य विशेष मामला दो या दो से अधिक सरल कुंजियों पर एक साथ श्रेणी के प्रश्न हैं, जैसे कि 50,000 और 100,000 के बीच वेतन वाले और 1995 और 2007 के बीच काम पर रखे गए सभी कर्मचारी रिकॉर्ड ढूंढना।

एकल आदेशित कुंजियाँ

 * यदि मुख्य मान मध्यम रूप से सघन अंतराल पर फैले हों तो डेटा संरचना को व्यवस्थित करें।
 * प्राथमिकता क्रमबद्ध सूची; रैखिक खोज देखें
 * कुंजी-क्रमबद्ध सरणी; बाइनरी खोज देखें
 * स्व-संतुलन बाइनरी खोज वृक्ष
 * हैश तालिका

सबसे छोटा तत्व ढूँढना

 * ढेर (डेटा संरचना)

स्पर्शोन्मुख सबसे खराब स्थिति का विश्लेषण
इस तालिका में, एसिम्प्टोटिक विश्लेषण बिग-ओ नोटेशन|नोटेशन ओ(एफ(एन)) का अर्थ सबसे खराब स्थिति में एफ(एन) के कुछ निश्चित गुणज से अधिक नहीं है।

ध्यान दें: किसी अवर्गीकृत सरणी पर इंसर्ट को कभी-कभी O(n) के रूप में उद्धृत किया जाता है, इस धारणा के कारण कि सम्मिलित किए जाने वाले तत्व को सरणी के एक विशेष स्थान पर डाला जाना चाहिए, जिसके लिए बाद के सभी तत्वों को एक स्थान से स्थानांतरित करने की आवश्यकता होगी। हालाँकि, एक क्लासिक सरणी में, सरणी का उपयोग मनमाने ढंग से अवर्गीकृत तत्वों को संग्रहीत करने के लिए किया जाता है, और इसलिए किसी भी दिए गए तत्व की सटीक स्थिति का कोई महत्व नहीं होता है, और सरणी आकार को 1 से बढ़ाकर और तत्व को अंत में संग्रहीत करके सम्मिलित किया जाता है। सरणी का, जो एक O(1) ऑपरेशन है। इसी तरह, विलोपन ऑपरेशन को कभी-कभी ओ (एन) के रूप में उद्धृत किया जाता है, इस धारणा के कारण कि बाद के तत्वों को स्थानांतरित किया जाना चाहिए, लेकिन एक क्लासिक अवर्गीकृत सरणी में क्रम महत्वहीन है (हालांकि तत्वों को सम्मिलित रूप से समय-समय पर आदेश दिया जाता है), इसलिए विलोपन किया जा सकता है हटाए जाने वाले तत्व को सरणी में अंतिम तत्व के साथ स्वैप करके और फिर सरणी आकार को 1 से घटाकर किया जाना चाहिए, जो एक O(1) ऑपरेशन है। यह तालिका केवल एक अनुमानित सारांश है; प्रत्येक डेटा संरचना के लिए विशेष परिस्थितियाँ और भिन्नताएँ होती हैं जिनके कारण अलग-अलग लागतें हो सकती हैं। साथ ही कम लागत प्राप्त करने के लिए दो या दो से अधिक डेटा संरचनाओं को जोड़ा जा सकता है।

यह भी देखें

 * डेटा संरचनाओं की सूची
 * सूची छोड़ें

श्रेणी:डेटा संरचनाएँ