REKURSIOON - Recursion
Jargmine := Fibo(N - 1);
Eelmine := Fibo(N - 2);
Fibo := Eelmine + Jargmine;
END; { Fibo }
Ülesanne: teha ise täitmise analüüs.
Probleemide rekursiivne lahendamine
Kuidas arendada välja rekursiivset algoritmi? See pole eesmärk omaette, seda enam, et
enamik probleeme laheneb teisiti lihtsamalt. Kuid on n.-ö. rekursiivseid probleeme,
mille rekursiivne lahendus on loogilisem, elegantsem ja lihtsam.
Kuidas ära tunda, et tasub môelda rekursioonile, s.t. millised on rekursiivse ülesande
tunnusjooned? Olgu n! jälle baasnäiteks, kuigi sellegi ülesande mitterekursiivne
lahendus on parem.
(1) palju ühelaadseid operatsioone, mille "mahukus" on erinev: 0!, 1!, 2!, 3!, . . .
(2) saame eristada mitterekursiivset triviaalset erijuhtu: 0! = 1
(3) probleem "keerukamal" juhul on taandatav "lihtsama" juhu lahendamisele: n! = n *
(n - 1)!
(4) sel viisil järjest lihtsamale taandamine viib lôpuks triviaalse juhuni: 0!-ni