توضيح $ \ sum_ {h= 0} ^ {\ lloor lg (n) \ rfloor} \ lceil \ frac {{h + {h + 1}} \ rceil o (h)= o (n \ sum_ {h= 0} ^ {\ lloor lg (n) \ rfloor} \ frac {2 ^ h} {2 ^ h}) $ في build-max-heap

cs.stackexchange https://cs.stackexchange.com/questions/127495

سؤال

كنت ذاهبا إلى النص مقدمة في الخوارزميات بواسطة cormen et. آل. حيث صادفت خطوة في تحليل الوقت لتعقيد الوقت $ build-max-heap $ الإجراء.

الإجراء كما يلي:

giveacodicetagpre.

الآن يدعي المؤلفون أن يستمدوا ملزمة أكثر إحكاما من خلال مراقبة ذلك الوقت ل $ MAX-Heapify $ للتشغيل في عقدة يختلف مع ارتفاع العقدة الشجرة، ومرتفعات معظم العقد صغيرة. يعتمد التحليل الشديد على الخصائص التي $ n $ lepement heap لها ارتفاع $ \ lloor lg (n) \ rfloor $ وعلى معظم $ \ lceil \ frac {2} {h + 1}} \ rceil $ العقد من أي ارتفاع $ h $ .

لذلك، $$ \ sum_ {h= 0} ^ {\ lloor lg (n) \ rfloor} \ lceil \ frac {n} {2 ^ {h + 1} } \ rceil o (h)= o (n \ sum_ {h= 0} ^ {\ lloor lg (n) \ rfloor} \ frac {2 ^ h} {2 ^ h}) \ Ldots \ Tag 1 $

الآن في الخطوة المذكورة أعلاه التي أواجهها المشكلة. كيف يحصل المؤلفون على التعبير على RHS باستخدام LHS، لذلك ببساطة (كما لو كان بشكل حدسي). ولكن لا يبدو أن أشارك نفس الحدس.

الآن أقصى ارتفاع لأي عقدة هو ارتفاع الجذر الذي هو $ \ llloor lg (n) \ rfloor $ . الآن دعونا نجد ملزمة الحد الأدنى من القيمة الممكنة للكسر $ \ frac {2 ^ {h + 1}} $ ، والذي يحدث عند $ h=llloor lg (n) \ rfloor $

حتى، $$ \ frac {2 ^ {\ llloor lg (n) \ rfloor + 1}}=frac {2.2 ^ {\ llloor LG (n) \ rfloor}} \ geqslant \ frac {2.2 ^ {lg (lg (n)}}=frac {2n}=frac {1} {2} \ Ldots \ Tag 2 $$

الآن من خطوة التحليل من قبل المؤلفين (1) يفترضون

$$ \ lceil \ frac {n} {2 ^ {h + 1}} \ rceil \ leqslant c. \ frac {n} {2 ^ h}، c> 0 $

الآن بقدر ما أعرف من الرياضيات،

$$ \ LCEIL \ FRAC {n} {2 ^ {h + 1}} \ rceil \ lt \ frac {n} {2 ^ {h + 1}} + 1 $

وبالنسبة للطريقة التي عمل بها المؤلفون بها، يجب أن يكون الوضع على النحو التالي،

$$ \ LCEIL \ FRAC {n} {2 ^ {h + 1}} \ rceil \ lt \ frac {n} {2 ^ {h + 1}} + 1 \ leqslant c. \ frac {n} {2 ^ {h}}}

لذلك، $$ \ frac {2 ^ {h + 1}} + 1 \ leqslant c. \ frac {2 {h} {h}} $ $

$$ \ IFF 1 \ Leqslant c. \ frac {2 ^ {h}} - \ frac {2} {2 ^ {h + 1}} $

$$ \ IFF 1 \ Leqslant \ frac {2 ^ {h + 1}} (2C-1) $$

$$ \ IFF \ FRAC {n} {2 ^ {h + 1}} \ Geqslant \ frac {1} {2C-1} \ Ldots \ Tag 3 $$

الآن (3) للامتثال (2) يجب أن يكون لدينا،

$ 2.c-1 \ Geqslant 2 \ IFF c \ geqslant \ frac {2} {}}

الآن هو أن خط واحد في (1) يستحق هذا الجهد الكثير من الجهد أو هو الوضع أن الخطوة تافهة أو بديهية يمكننا أن نفعل خطوة عقليا فقط. إذا كان هذا هو الأخير، يرجى تنوير لي بهذا الحدس ..

href="https://cs.stackexchange.com/a/123779/118790"> حتى في هذه الإجابة هنا هذا $ \ frac {n } {2 ^ {h + 1}} \ lt \ frac {{^ {h} {h} {h}} $ هو بديهية ولكن هذا $ 1 \ lt \ frac {n } {2 ^ {h}} $ ليست بديهية للغاية وتتطلب استخدام (2) أشعر

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

المحلول

منذ $ h \ leq \ lloor \ llor \ lg n \ rfloor $ ، لدينا $ 2 ^ h \ leq n $، وهكذا $ n / 2 ^ {h + 1} \ geq 1/2 $ .لذلك $$ \ غادر \ lceil \ frac {n} {2 ^ {h + 1}} \ right \ rceil \ leq \ FRAC {n} {2 ^ {h + 1}} + 1= \ frac {n} {2 ^ {h + 1}} + 2 \ cdot \ frac {1} {2} \ leq \ frac {n} {2 ^ {h + 1}} + 2 \ frac {{^ {h + 1}}= 3 \ frac {2} {2 ^ {h + 1}}. $ (في الواقع، إذا كنت أكثر حذرا، يمكنك استبدال 3 دولارات $ بواسطة $ 2 $ .)

أكثر عموما، إذا $ x \ geq c> 0 $ ثم $ \ lceil x \ rceil= o (x) $ ، حيث يعتمد ثابت المخفية على $ c $ .

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