बाइनरी पेड़ में नोड हटाने के लिए, हमें नोड खोजना होगा। न्यूनतम ओ (लॉग एन) और अधिकतम ओ (एन) में यह संभव है। नोड के आधार पर, हमें पॉइंटर्स को पुनर्व्यवस्थित करना होगा। हम उस समय की जटिलता की गणना कैसे करते हैं।बाइनरी पेड़ में नोड को हटाने की समय जटिलता क्या है
उत्तर
अधिकांश जटिलता नोड की खोज कर रही है। एक बार यह पाया गया है - जब तक कि पैरेंट नोड बनाए रखा जाता है-यह नोड को हटाने के लिए केवल कुछ और असाइनमेंट है। तो यह एक निरंतर आदेश है।
यह इस बात पर निर्भर करता है कि आप कैसे हटा रहे हैं। सबसे आम तरीके में नोड के उत्तराधिकारी को ढूंढना शामिल है, फिर उस उत्तराधिकारी के साथ नोड को बदलना शामिल है। यह ओ (एच) में किया जा सकता है, जहां पे पेड़ की ऊंचाई है। सबसे बुरे मामले में यह ओ (एन) है, लेकिन एक संतुलित पेड़ में सबसे खराब मामला ओ (एलजी एन) है।
आपको "अधिकतम ओ (एन)" के रूप में सबसे खराब खोज समय कहां मिल रहा है? यह बीएसटी में कभी नहीं होना चाहिए। सबसे बुरी स्थिति में, यह खोज और हटाने के लिए अधिकतम ओ (एच) होना चाहिए, जहां पेड़ की ऊंचाई 'एच' है। यह helpful article देखें।
ओ (एच) एक रोगजनक रूप से अपमानजनक पेड़ में ओ (एन) हो सकता है। – templatetypedef
हाँ सबसे अच्छा मामले जटिलता है ओ (logn) (जब अच्छी तरह से संतुलित) और
सबसे खराब स्थिति जटिलता हे है (एन)
1 - 2 - 3 - BST विलोपन के साथ 4
लेकिन मुख्य समस्या (हिबार्ड हटाना) यह है कि यह सममित नहीं है। कई प्रविष्टि और हटाने के बाद बीएसटी कम संतुलन बन गया। शोधकर्ताओं ने साबित किया कि पर्याप्त लंबे समय तक यादृच्छिक डालने और पेड़ की ऊंचाई को हटाने के बाद वर्ग (एन) बन जाता है। तो अब प्रत्येक ऑपरेशन (सर्च, डालने, डिलीट) sqrt (n) समय लेगा जो ओ (लॉगन) की तुलना में अच्छा नहीं है।
यह बीएसटी के लिए कुशल सममित हटाने के लिए बहुत लंबी स्थिति (लगभग 50 वर्षों) खुली समस्या है। गारंटीकृत संतुलित पेड़ के लिए, हमें रेडब्लैक ट्री इत्यादि का उपयोग करना होगा
- 1. पेड़ के ट्रैवर्सल की समय जटिलता क्या है?
- 2. बाइनरी खोज पेड़ में "आंतरिक नोड" क्या है?
- 3. ट्रीसेट पुनरावृत्ति की समय जटिलता क्या है?
- 4. बाइनरी पेड़ ट्रैवर्सल की जटिलताओं
- 5. सामान्य पेड़ से बाइनरी पेड़
- 6. random.sample की समय जटिलता
- 7. एकल-और दोगुनी-लिंक्ड सूचियों में नोड हटाने की समय जटिलता
- 8. रूबी में ऐरे # यूनिक विधि की समय जटिलता क्या है?
- 9. बाइनरी खोज पेड़ में डुप्लिकेट प्रविष्टियों को खोजने की रणनीति
- 10. std :: map में find() की समय जटिलता?
- 11. एवीएल पेड़ पर बाइनरी सर्च पेड़
- 12. एक बाइनरी पेड़ में नोड के पहले आम पूर्वजों को कैसे ढूंढें?
- 13. गैर-बाइनरी पेड़ में एक नोड के लिए रिकर्सिव खोज
- 14. योजना में इस कार्य की समय जटिलता क्या है?
- 15. क्लोजर में गिनती कार्य की समय जटिलता क्या है?
- 16. जावा में हैश मैप.containsKey() की समय जटिलता क्या है?
- 17. ट्रीसेट में आदेशित संचालन की समय जटिलता क्या है?
- 18. बाइनरी सर्च पेड़ (इटरेटर का उपयोग करके) में ट्रैवर्सल जटिलता में ऑर्डर करें?
- 19. हैश टेबल की समय जटिलता
- 20. ट्रीमैप - खोज समय जटिलता
- 21. सामान्य डेटा संरचनाओं से अनुक्रमण, डालने और हटाने की समय जटिलता क्या है?
- 22. बाइनरी पेड़ में सबसे कम आम पूर्वज
- 23. स्मृति आवंटन की समय जटिलता
- 24. प्राथमिकता कतार जटिलता समय हटाएं
- 25. जावा में सेट की समय जटिलता
- 26. नींद की तरह की जटिलता क्या है?
- 27. सी ++: बाइनरी पेड़ के सभी नोड मानों का योग
- 28. बाइनरी खोज पेड़ क्यों?
- 29. हास्केल: फ्लैट बाइनरी पेड़
- 30. OrderedDictionary की जटिलता क्या है?
+1, अच्छा और संक्षिप्त। –