31

मैं विभिन्न पेड़ों के बारे में पढ़ रहा हूं, और एवीएल पेड़ों और पेड़ के पेड़ में आया हूं। मैं जानना चाहता हूंएवीएल पेड़ और स्प्ले पेड़ों के बीच अंतर

  1. एवीएल पेड़ और स्प्ले पेड़ों के बीच क्या अंतर है?
  2. हम किस आधार पर इन तनावों का चयन करते हैं?
  3. इन पेड़ों के सकारात्मक और नकारात्मक क्या हैं?
  4. बड़े ओ नोटेशन के मामले में इन पेड़ों के प्रदर्शन क्या हैं?
+0

यहां स्प्ले पेड़ों के बारे में एक अच्छा शिक्षण वीडियो है: https://youtu.be/G5QIXywcJlY आप इस साइट पर उनके साथ भी खेल सकते हैं: https://www.cs.usfca.edu/~galles/visualization /SplayTree.html – user9589

उत्तर

60
  1. दोनों टेढ़ा पेड़ और AVL पेड़ उत्कृष्ट प्रदर्शन की गारंटी देता है के साथ द्विआधारी खोज के पेड़ हैं, लेकिन वे कैसे वे प्राप्त उन है कि प्रदर्शन की गारंटी में मतभेद है। एक एवीएल पेड़ में, पेड़ का आकार हर समय बाधित होता है जैसे पेड़ का आकार संतुलित होता है, जिसका अर्थ है कि पेड़ की ऊंचाई कभी ओ (लॉग एन) से अधिक नहीं होती है। यह आकार सम्मिलन और हटाने पर बनाए रखा जाता है, और लुकअप के दौरान बदलता नहीं है। दूसरी तरफ, स्प्ले पेड़, उस पर लुकअप के जवाब में पेड़ को दोबारा बदलकर कुशल बनाए रखें।इस तरह, अक्सर उपयोग किए जाने वाले तत्व पेड़ के शीर्ष की ओर बढ़ते हैं और बेहतर लुकअप के समय होते हैं। स्प्ले पेड़ों का आकार बाधित नहीं होता है, और जो लुकअप किए जाते हैं उसके आधार पर भिन्न होता है।

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

  3. देखें (2)

  4. AVL पेड़ प्रविष्टि, विलोपन, और लुकअप ले हे (लॉग एन) समय प्रत्येक। स्प्ले पेड़ों में ये वही गारंटी होती है, लेकिन गारंटी केवल एक अमूर्त भावना में होती है। संचालन के किसी भी लंबे अनुक्रम में अधिकांश ओ (एन लॉग एन) समय लगेगा, लेकिन व्यक्तिगत संचालन में ओ (एन) समय जितना अधिक हो सकता है।

आशा है कि इससे मदद मिलती है!

+2

>> स्प्ले पेड़ एवीएल पेड़ों की तुलना में अधिक मेमोरी-कुशल हैं, क्योंकि उन्हें नोड्स में संतुलन की जानकारी स्टोर करने की आवश्यकता नहीं है, लेकिन एवीएल-पेड़ों के लिए प्रति नोड कितनी मेमोरी की आवश्यकता है? – 4esn0k

+0

@ 4esn0k- आपको तीन अलग-अलग शेष कारकों में से एक को स्टोर करने की आवश्यकता है (-1, 0, या +1)। आमतौर पर, हालांकि, कोई ओवरहेड नहीं है, क्योंकि इसे स्टोर करने के लिए आवश्यक दो बिट्स को बाएं और दाएं पॉइंटर्स में पैक किया जा सकता है। – templatetypedef

3

1) एवीएल पेड़ और स्प्ले पेड़ों के बीच क्या अंतर है?

वे संरचना और संचालन में समान हैं जो हम उन्हें बुलाते हैं। अंतर यह है कि स्प्ले पेड़ों में, प्रत्येक ऑपरेशन के बाद, हम पेड़ को लगभग पूरी तरह से संतुलित रखने की कोशिश करते हैं ताकि भविष्य के संचालन में कम समय लगे।

2) हम किस आधार पर इन तनावों का चयन करते हैं?

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

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

3) इन पेड़ों के सकारात्मक और नकारात्मक क्या हैं?

दोनों के लिए पॉजिटिव यह है कि आप सैद्धांतिक रूप से इन दोनों डेटा संरचनाओं में लॉग (एन) के आसपास मिलता है।

जैसा कि बताया गया है कि स्प्ले पेड़ों में कई परिचालनों पर औसत लॉग (एन) है। इसका मतलब यह है कि, हो सकता है कि आपको उस सेट में कम से कम एक ऑपरेशन के लिए समय की जटिलता मिल जाए। लेकिन लगातार वस्तुओं तक पहुंचने पर इसका मुआवजा दिया जाएगा।

द्विआधारी खोज पेड़ का नकारात्मक यह है कि, आपको लॉग (एन) हमेशा भाग्यशाली होने की आवश्यकता है। यदि चाबियाँ यादृच्छिक नहीं हैं, तो पेड़ केवल एक तरफ के रूप में एक सूची में कम हो जाएगा।

4) बड़े ओ नोटेशन के मामले में इन पेड़ों के प्रदर्शन क्या हैं?

पेड़ संचालन के समूह के लिए औसत पर स्प्ले पेड़ लॉग (एन)। बाइनरी पेड़ लॉग (एन) केवल तभी जब आपकी चाबियाँ यादृच्छिक रूप से चल रही हों।

रनटाइम पर परिणाम यहां स्पष्ट हैं splay tree runtime profiling आप बिना रनिंग के और बिना खोज में रनटाइम अंतर देख सकते हैं।

संबंधित मुद्दे