کپه‌ی بازگشتی

رویه‌ی Build-Heap را برای تبدیل آرایه‌ی ‎$A[1..n]$‎ به یک هیپ در نظر بگیرید:

Build-Heap($A$) ‎

  1. ‎for $i\leftarrow \lfloor Length(A)/2 \rfloor$ downto $‎1$‎
  2. do ‎Bubble-Down(A‎, ‎i);‎
  1. رویه‌ی فوق را به صورت رویه‌ی بازگشتی Recursive-Build-Heap($A‎, ‎i$)‎ به زبان ‎ $CLRS$‎ بازنویسی کنید، طوری که $‎A[i]‎$ ریشه‌ی‎«زیر-هیپ»ی است که قرار است ساخته شود. برای تبدیل کل آرایه به یک هیپ باید رویه را به‌صورت Recursive-Build-Heap($A‎,‎1$)‎ فرا بخوانیم.
  2. زمان اجرای الگوریتم خود را در بدترین حالت، به‌صورت یک رابطه‌ی بازگشتی بنویسید.
  3. رابطه‌ی بازگشتی به‌دست آمده را با استفاده از قضیه‌ی اصلی حل کنید.