मैं द्विआधारी खोज वृक्ष पढ़ रहा था और सोच रहा था कि क्यों हम सब पर BST की ज़रूरत है? जहां तक मुझे पता है कि सभी चीजें सरल सॉर्ट किए गए सरणी का उपयोग करके भी प्राप्त की जा सकती हैं। उदा - आदेश में एक BST n तत्वों के होने का निर्माण करने के लिए, हम n*O(log n)
समय अर्थात O(nlog n)
और देखने समय की आवश्यकता है O(log n)
है। लेकिन यह चीज सरणी का उपयोग करके भी हासिल की जा सकती है। हम एक क्रमबद्ध सरणी हो सकता है (O(nlog n)
समय की आवश्यकता है), और कहा कि में देखने का समय भी O(log n)
अर्थात द्विआधारी खोज algo है। तो हमें एक और डेटा संरचना की आवश्यकता क्यों है? क्या बीएसटी का कोई अन्य उपयोग/आवेदन है जो उन्हें इतना खास बनाता है?बाइनरी खोज पेड़ क्यों?
--Ravi
सरणी संस्करण से डालने/निकालने की दक्षता क्या है? यदि इसमें सरणी के सभी अन्य तत्वों को स्थानांतरित करना शामिल है, तो यह महंगा हो सकता है। –
ठीक है ...नए/मौजूदा तत्व की सही स्थिति को ढूंढना अभी भी ओ (लॉग एन) होगा, लेकिन हाँ स्थानांतरण एक समस्या होगी ... लेकिन सिर्फ यह .... .... मैंने पढ़े गए पाठों के अनुसार, ऐसा लगता है कि वे (बीएसटी) बहुत खास हैं? मैं उन चीजों के बारे में और जानना चाहता हूं जो उन्हें इतना खास बनाते हैं। –
[द्विआधारी खोज बनाम बाइनरी खोज पेड़] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/5968937/binary-search-vs-binary-search-tree) – nawfal