سؤال

تعلمت أنه في شجرة إحصائية الطلب (شجرة حمراء عيادة، حيث تحتوي كل عقدة $ x $ يحتوي على حقل إضافي يدل على عدد العقد في الجذور الشجرة الفرعية في $ x $ ) العثور على $ I $ يمكن القيام بها إحصاءات الطلب في $ O (LG (n)) $ الوقت في أسوأ الحالات. الآن في حالة وجود مجموعة تمثل المجموعة الديناميكية من العناصر التي تجد $ I $ يمكن تحقيق إحصاء النظام في $ o (n) $ الوقت في أسوأ الحالات. [حيث $ n $ هو عدد العناصر].

الآن شعرت مثل العثور على جزء علوي ضيق ملزم لتشكيل $ n $ شجرة أسود أحمر حتى أتمكن من التعليق حول البديل الأفضل: "الحفاظ عليه العناصر المحددة في صفيف وأداء الاستعلام في $ o (n) $ الوقت "أو" الحفاظ على العناصر في شجرة حمراء سوداء (تشكيل منها يأخذ $ O (f (n)) $ الوقت يقول) ثم قم بإجراء الاستعلام في $ O (LG (n)) $ الوقت ".


لذلك تحليل تقريبي للغاية على النحو التالي، إدراج عنصر في $ n $ العنصر الأحمر الأسود شجرة يأخذ $ O (LG (N)) $ الوقت وهناك $ n $ العناصر لإدراجها، لذلك يستغرق $ O (nlg (n)) $ الوقت. الآن هذا التحليل فضفاض تماما كما هو الحال عندما لا يوجد سوى عدد قليل من العناصر في الشجرة الحمراء السوداء، فإن الارتفاع أقل بكثير وهكذا هو الوقت المناسب لإدراج الشجرة.

حاولت محاولة تحليل مفصل على النحو التالي (ولكن فشل ذلك):

اسمحوا أثناء محاولة إدراج $ j= i + 1 $ عنصر الشجرة هو ارتفاع الشجرة 2 دولار .lg (i + 1) +1 $ . للحصول على $ c $ ، إجمالي وقت التشغيل،

$$ t (n) \ leq \ sum_ {j= 1} ^ {n} c. (2.lg (i + 1) +1) $

$$= c. \ sum_ {i= 0} ^ {n-1} (2.lg (i + 1) +1) $$ < / ص>

$$= c. \ left [\ sum_ {i= 0} ^ {n-1} 2.lg (i + 1) + \ sum_ {i= 0} ^ {n-1} 1 \ right] $

$$= 2C \ sum_ {i= 0} ^ {n-1} lg (i + 1) + cn \ tag1 $

الآن

$$ \ sum_ {i= 0} ^ {n-1} lg (i + 1)= lg (1) + lg (2) + lg (3) + ... + LG (N)= LG (1.2.3 .... N) \ TAG2 $$

الآن $$ \ prod_ {k= 1} ^ {n} k \ leq n ^ n، \ text {والتي هي أعلى مستويات فضفاضة للغاية} \ Tag 3 $$

باستخدام $ (3) $ في $ (2) $ واستبدال النتيجة $ (1) $ لدينا $ t (n)= o (nlg (n)) $ وهو نفس التحليل الخام ...

هل يمكنني القيام بأي شيء أفضل من $ (3) $ ؟


جميع العقد المشار إليها هي العقد الداخلية في الشجرة الحمراء السوداء.

هل كانت مفيدة؟

المحلول

لبناء شجرة حمراء سوداء على $ N $ العناصر التي تحتاج إلى قضاء بعض الوقت $ \ Omega (n \nسجل n) ، إذا سمح لك بمقارنة مفاتيح العناصر فقط. لرؤية هذا الإشعار بأن زيارة داخلية لأي BST يزور العقد في زيادة ترتيب مفاتيحها.

إذا كنت قادرا على إنشاء شجرة حمراء سوداء في الوقت المناسب $ t (n)= o (n \ log n) $ ثم تكون أيضا قادرة على فرز $ N $ العناصر في الوقت $ o (t (n) n)= o (n \ log n ) $ ، تناقض مع الحد الأدنى على الفرز للخوارزميات القائمة على المقارنة.

من ناحية أخرى، إذا تم فرز العناصر بالفعل، يمكنك إنشاء شجرة حمراء سوداء في الوقت المناسب $ O (n) $ : بناء فقط BST متوازن، إذا كان المستوى الأخير غير مكتمل لعقده حمراء، ولون كل عقدة سوداء أخرى. يتطلب هذا وقت خطي منذ أن يتم وصف تعقيد الزمن الزمني للقارات التراكبية بواسطة معادلة التكرار $ t (n)= 2t (n / 2) + o (1) $ .

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى cs.stackexchange
scroll top