E sad, kod iterativnog rešenja ono što radim nije eksplicitno deljenje, već polazim od pretpostavke da je sve već podeljeno i sklapam ga u veću celinu. Evo, daću primer sa jednim nizom, npr. 1,2,3,4,5,6,7,8,9 čiju sumu elemenata treba izračunati. Na početku postoji samo ovaj niz,
Code:
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
Pretposavljam da je podela već napravljena tj. da u iterativnoj verziji treba napraviti korak koji bi se inače napravio tek nakon što rekurzija dostigne svoj vrhunac. Sabiram sve susedne elemente:
Code:
1 2 3 4 5 6 7 8 9
\/ \/ \/ \/ /
3 7 11 15 9
1 2 3 4 5 6 7 8 9
\/ \/ \/ \/ /
3 7 11 15 9
Ovako dobijam novi niz na kome postupak treba ponoviti. I tako u krug, dok se ne dođe do samo jednog broja:
Code:
1 2 3 4 5 6 7 8 9
\/ \/ \/ \/ /
3 7 11 15 9
\ / \ / /
10 26 9
\ / /
36 9
\ /
45
1 2 3 4 5 6 7 8 9
\/ \/ \/ \/ /
3 7 11 15 9
\ / \ / /
10 26 9
\ / /
36 9
\ /
45
Dakle, da li je ovo ispravan rezon za iterativni „podeli pa vladaj“? Ima li možda boljeg? :)
Ipak se ++uje.