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

कंप्यूटर विज्ञान में, सर्च डाटा स्ट्रक्चर एक ऐसा डाटा स्ट्रक्चर है जो आइटम के समूह से विशिष्ट आइटम के डेटा रीट्रीवल, उदाहरण के लिए किसी डेटाबेस से विशिष्ट रिकॉर्ड के रीट्रीवल की अनुमति प्रदान करता है।

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

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

वर्गीकरण
सबसे सरल प्रकार की क्वेरी किसी ऐसे रिकॉर्ड का पता लगाना है जिसमें एक निर्दिष्ट फ़ील्ड किसी निर्दिष्ट मान v के बराबर है। अन्य सामान्य प्रकार की क्वेरी "न्यूनतम (या अधिकतम) की वैल्यू वाले आइटम को सर्च करे", "v से अधिकतम की वैल्यू वाले आइटम सर्च करें ", "vmin और vmax के मध्य विशिष्ट बाउन्ड के की वैल्यू वाले सभी आइटम सर्च करें" आदि हैं।

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

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

सिंगल ऑर्डर कुंजियाँ

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

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

 * ढेर (डाटा स्ट्रक्चर)

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

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

यह भी देखें

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

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