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

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

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

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

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

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

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

सिंगल ऑर्डर की

 * यदि की वैल्यू मॉडरेटली कम्पैक्ट इंटरवल पर स्पैन हों तो डाटा स्ट्रक्चर को ऐरे के रूप में व्यवस्थित करें।
 * प्राइऑरटी-सॉर्टिड लिस्ट; लिनीअर सर्च देखें
 * की-सॉर्टिड ऐरे; बाइनरी सर्च देखें
 * सेल्फ-बैलेन्सिग बाइनरी सर्च ट्री
 * हैश टेबल

सबसे छोटे एलेमेन्ट का पता लगाना

 * हीप

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

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

यह तालिका केवल एक अनुमानित सारांश है; प्रत्येक डाटा स्ट्रक्चर के लिए विशेष परिस्थितियाँ और भिन्नताएँ होती हैं जिनके कारण अलग-अलग कॉस्ट हो सकतें हैं। साथ ही कम कॉस्ट प्राप्त करने के लिए दो या दो से अधिक डाटा स्ट्रक्चओ को जोड़ा जा सकता है।

यह भी देखें

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

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