سؤال

إذا كانت T متوازنة مع عناصر N، L البضائع الفرعية اليسرى وصحيحها، كيف يمكنني إثبات أن عمقها أقل من أو يساوي 2log (n) + 1؟

هناك دليل على التعريفي الذي لدي لكنني لا أحصل عليه.

(أفهم أن Stackoverflow هي أساسا البرمجة الموجهة نحوها لكنني وجدت بعض الأسئلة حول أشجار البحث الثنائية وقررت إعطائها محاولة، آمل أن أفعل شيئا غير جيد. :))

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

المحلول

بحكم تعريف "متوازنة"، تختلف أعماق كل سكوتيز اليسار واليمين لنفس العقدة على الأكثر من قبل واحد. يتم تعريف "العمق" عادة بأنه "عدد الخطوات من أطول المشي من جذور الأشجار إلى الورقة"، لذلك على سبيل المثال BST مع جذر واحد ويتركان (ثلاثة عناصر بالطريقة الوحيدة التي يمكن ترتيبها في BST متوازن) يقال إنه يتمتع بعمق واحد (يبدو أنك تستخدم تعريفا مختلفا قليلا من شأنه أن يعطيه عمق اثنين؟)، كما هو الحال مع جذر واحد وورقة واحدة (سواء كانت تلك الورقة هي السخرية الجذر اليسرى أو اليمنى لا فرق)، في حين أن واحدة فقط من الجذر هذا أيضا ورقة (عنصر واحد) سيكون لها عمق 0. (لا يوجد يوجد BST مع عناصر صفر).

لذلك بالنسبة ل n <= 3 عناصر، استدعاء D (n) عمق الشجرة على النحو الوارد أعلاه، بوضوح D(n) < log(n) + 1 (مع log بمعنى قاعدة LOGARITMM) بالتفتيش، منذ 1 = D(2) < log(2) + 1 = 2 (و أيضا 1 = D(3) التي التي تعاني من عدم المساواة log(3) + 1, ، هو في الحقيقة > 2)، و 0 = D(1) < log(1) + 1 = 1 - هذا يعطينا قاعدة التعريفي.

لإكمال الدليل عن طريق التعريفي، علينا أن نظهر ذلك إذا D(k) < log(k) + 1 للجميع k < n, ، ثم يتبع ذلك أيضا D(n) < log(n) + 1.

إذا كان N غريبا، فقد تمتلك الشجرة اليسرى واليمنى (n-1)/2 العناصر كل منها، والشجرة لديها عمق 1 أكثر من السخرية؛ ولكن بعد ذلك D(n) = 1 + D((n-1)/2) < 1 + 1 + log((n-1)/2) (من قبل فرضية التعريفي) = 1 + log(n-1) (حيث log((n-1)/2) = log(n-1) - 1) وبالتالي فوريوري < 1 + log(n), ، كيد.

إذا n هل حتى تتبع نفس الخطوات مع log(n) بدلا من log(n-1) وبدون الانتهاء من "Fortiori"، ولا يزال الدليل.

نصائح أخرى

إجابتك صحيحة إذا كانت الشجرة الثنائية المتوازنة كاملة عدد العناصر الموجودة في الشجرة الفرعية اليمنى واليسرى يمكن أن تكون (N-1) / 2 ولكن إذا لم تكن كاملة، فلا يحتاج عدد العناصر إلى أن تكون (N-1) / 2 قد يكون المستوى الأخير عناصر مختلفة

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