Wiem, że każdy algorytm może zostać zapisany rekurencyjnie (często we wielu przypadkach jest to prostsze) jak i iteracyjnie. Wersja iteracyjna z reguły jest szybsza.
Jak właściwie należy zabrać się za usuwanie rekurencji: czy projektuje się algorytm od początku czy też są jakieś schematy, sztuczki jakie należy zastosować. I jeśli tak, jak wykazać ich poprawność.
Szczególnie interesuje mnie usuwanie podwójnej rekurencji.