बाइनरी खोज के साथ एक क्रमबद्ध सरणी पर एक बाइनरी खोज पेड़ का क्या फायदा है? बस गणितीय विश्लेषण के साथ मुझे कोई फर्क नहीं दिखता है, इसलिए मुझे लगता है कि निम्न स्तर के कार्यान्वयन ओवरहेड में एक अंतर होना चाहिए। औसत केस रन टाइम का विश्लेषण नीचे दिखाया गया है।द्विआधारी खोज बनाम बाइनरी खोज पेड़
में क्रमबद्ध सरणी द्विआधारी खोज
खोज: हे (लॉग (एन))
प्रविष्टि: हे (लॉग (एन))
विलोपन (हम जहां तत्व सम्मिलित करने के लिए खोजने के लिए द्विआधारी खोज चलाने): ओ (लॉग इन करें (एन)) (हम नष्ट करने के लिए तत्व)
द्विआधारी खोज वृक्ष
खोज खोजने के लिए द्विआधारी खोज चलाने: हे (लॉग (एन))
प्रविष्टि: हे (लॉग (एन))
हटाने की प्रक्रिया: ओ (लॉग (एन))
बाइनरी खोज ट्रे उपरोक्त सूचीबद्ध संचालन के लिए ओ (एन) का सबसे खराब मामला है (यदि पेड़ संतुलित नहीं है), तो ऐसा लगता है कि यह वास्तव में बाइनरी खोज के साथ क्रमबद्ध सरणी से भी बदतर होगा।
इसके अलावा, मुझे यह नहीं लगता है कि हमें पहले से सरणी को सॉर्ट करना होगा (जो ओ (nlog (n)) खर्च करेगा, हम तत्वों को एक-एक करके सरणी में डालेंगे, जैसा कि हम बाइनरी पेड़ के लिए करेंगे । BST का केवल लाभ मैं देख सकता हूँ कि यह inorder, अग्रिम आदेश, क्रंमोत्तर तरह traversals के अन्य प्रकार का समर्थन करता है है।
बाइनरी खोज सरणी से सम्मिलन और हटाना ओ (एन) है और केवल खोज ओ (लॉग (एन) है)। –
यदि यह कहता है, एक सरणी के बजाय एक लिंक्ड सूची है तो सम्मिलन/हटाना 'ओ (लॉग एन) 'ले जाएगा। लेकिन एक सरणी के लिए ऐसा नहीं है। – Bhaskar
@ भास्कर, एक और गलत टिप्पणी, किसी लिंक्ड सूची पर किसी प्रकार का लुकअप ओ (एन) है। – Blindy