Bir nechta rekursiya
O'zini bir necha marta chaqiradigan rekursiv algoritmga bir nechta rekursiya
deyiladi. Bunday muolajalarni tahlil qilish ancha qiyin, bundan tashqari ular algoritmni ancha murakkablashtirishi mumkin.
Ushbu protsedurani ko'rib chiqing: protsedura ikki marta chaqirilganligi sababli, uning
vazifaviy aylanishi O (2N) = O (N) bo'ladi deb taxmin qilishimiz mumkin. Ammo aslida vaziyat ancha murakkab. Agar ushbu algoritmni sinchiklab o'rgansangiz, uning murakkabligi O (2 ^ (N + 1) -1) = O (2 ^ N) ekanligi ayon bo'ladi. Rekursiv algoritmlarning murakkabligini tahlil qilish juda arzimas ish ekanligini har doim yodda tutishingiz kerak.
procedure DoubleRecursive(N: integer); begin
if N>0 then begin
DoubleRecursive(N-1); DoubleRecursive(N-1); end;
end;
Do'stlaringiz bilan baham: |