Trivial
Mariusz:
Co się z nim stało ?
Nie wchodzi już na forum
Chodzi mi o ten wpis
Pozbywanie sie rekurencji ogonowej jest bardzo proste. Wystarczy ustawić argumenty i zrobić
goto na początek funkcji, np.:
int tailrec(int x) {
something(x);
if (x < 5)
{
return tailrec(x+10);
} else {
return x;
}
}
Zamieniamy na
int tailrec(int x) {
start:
something(x);
if (x < 5) {
x = x + 10;
goto start;
} else {
return x;
}
}
Dlaczego dał tutaj instrukcję skoku zamiast instrukcji iteracyjnej
potocznie zwanej pętlą
Czy rekurencję występującą w procedurze przywracającej własność kopca u Cormena
można nazwać ogonową ?
24 mar 23:37
Dziadek Mróz:
goto to stara metoda dla skoku w kodzie. Nie zaleca się jej użycia bo kod wygląda wtedy
paskudnie (Spaghetti code). Trivial pewnie o tym nie wiedział i tak oto mamy dinozaura w
kodzie
25 mar 12:35
25 mar 12:37
Mariusz:
Temat był o zapisywaniu algorytmów rekurencyjnych w sposób iteracyjny
(konkretnie o rekurencji użytej przez Cormena w procedurze przywracającej własność kopca)
Jak zapisywać algorytmy rekurencyjne w sposób iteracyjny np
wieże Hanoi
Procedura przywracająca własność kopca u Cormena
Procedura sortująca przez scalanie (tutaj już jc podał przykładowy kod)
Procedura sortująca przez podział (tzw sortowanie szybkie)
25 mar 17:56
Metis: Ostatnio używałem goto w programie skryptowym(batch), który bardzo ułatwia mi pracę, więc się
przydaje
27 mar 20:38