سلام . این سوال از نوع بازگشتی های معمولیه فقط صورتش یخورده آدم رو میترسونه، سخت نیست و براحتی قابل اثبات
اگر توجه کنیم فرم رابطه به صورت آشنای زیر هستش:
T(n)=T(αn)T(βn)cn
می دونیم که اگر
αβ<1 جواب رابطه ما همون
θ(n) میشه.
برای مثال فرض کنید ما
n=3 قرار بدیم قسمت بازگشت تابع به صورت زیر باز میشه:
T(n)=T(1)3T(2)33n
که خب ساختاری شبیه نوع صورت مسئله ما که در ابتدا گفته شد داره با این تفاوت ریز که دیگه خبری از ضریب n برای بازگشت وجود نداره و فقط ضرایب
α و
β و امثالهم رو داریم. بزرگترین ضریب ثابت نیز همون فراخوانی آخر یعنی n-1 هستش (که البته کار ما رو برای اثبات نیز خیلی راحتر میکنه چرا که در سطوح بعدی درخت بازگشت دیگه خبری از هزینه به بزرگی ۳n وجود نداره و هزینه ها همگی ناچیز و مجموع ضرایبی کمتر از ۱ رو دارن).
در نهایت باعث میشه حد بالای رابطه رو در ابتدا
T(n)=∑logni=1cin=θ(n) به ازای هر ورودی n برای جمع هزینه هر سطح درخت و کل ارتفاع درخت معرفی کنیم.
خب نکته آخر اینکه ضریب هزینه ثابت بازگشت ما (یعنی جمع کل سری در اینجا) خیلی کمتر از سری
∑logni=1cin است که معرفی شد چرا که ما توی بازگشتمون ضرایبی بسیار کمتر از n رو فراخوانی میکنیم (در حد یک عدد ثابت مثل
13 یا
23). یعنی اگه بخوایم بهتر بگیم توی این مسئله ما فقط هزینه به بزرگی n رو در فراخوانی اول و در سطح اول درخت داریم (۳n) و برای بقیه سطوح درخت هزینه ثابت میشه که رابطه
T(n)=3n∑(logn)−1i=1ci دقیقا هزینه کل رو نشون میده که از
θ(n) هست. در اینجا هزینه c رو هم میتونیم
c=n−1n تعریف کنیم(مخرج مشترک کسرها).
در هر صورت ما هزینه n رو "حداقل حداقل" در سطح اول درختمون داریم که باعث میشه رابطه رو حداقل از
Omega(n) معرفی کنیم.
حلشم که نگاه کردم از کتاب
θ(n) رو با استقراء اثبات کرده.