ALG7

ALG7



6.5. Metoda funkcji przeciwnych 177

Dokonaliśmy zatem tego, co było naszym celem: pozbawiliśmy procedurę P wszelkich parametrów lokalnych, a pomimo to jej funkcjonowanie - jak również funkcjonowanie całego programu - nie uległo zmianie. Musimy jednak pamiętać o tym, by prawidłowo zainicjować globalne już zmienne zm locparctm wywol właściwymi wartościami1, tak aby zachować pełną równoważność funkcjonalną naszego programu - przed i po przeróbce. Analizując jeszcze naszą metodę warto wspomnieć o nasuwającej się od razu optymalizacji. Na stosie musimy zachowywać tylko te wartości zmiennych lokalnych, które są potrzebne. W szczególności absolutnie nie ma potrzeby chować na stos tych zmiennych lokalnych, które nie są już używane po wywołaniu rekurencyjnym.

Dla ilustracji opisanego powyżej procesu przeanalizujmy raz jeszcze nasz klasyczny przykład wież Hanoi (patrz str. 170). Proste przekształcenia algorytmu prowadzą do następującej wersji:

void hanoi3()

(

while (n!=l)

(

push(n); push(a); push(b); n=n-l; b=3-a-b; hanoi3();

pop(b); pop(a); pop(n);

cout « "Przesuń dysk nr "<< n << " z " « a « " na "« b <<endl; n=n-l; a-3-ab;

I

cout << "Przesuń dysk nr 1 z " « a << " na "

<< b «endl;

I

6.5. Metoda funkcji przeciwnych

Użycie stosu - wywołań typu push i pop - jest kosztowne zarówno ze względu na czas potrzebny na obsługę tej struktury danych, jak i na pamięć niezbędną na rezerwację dostatecznie dużego stosu. Jak dużego? Problemem jest to. że nie wiemy tego a priori, co zmusza nas do założenia najgorszego przypadku. Z tego też powodu wszelkie ewentualne metody pozwalające nie korzystać ze stosu powinny być przez nas powitane jak najprzychylniej, faka metoda zostanie przedstawiona już za moment.

1

Przed pierwszym wywołaniem procedury P


Wyszukiwarka

Podobne podstrony:
ALG9 6.5, Metoda funkcji przeciwnych 179 b=l; olso ( PI(a-l,b); // tu funkcja odwrotna? b=b+a; ) Se
Wstawianie funkcji Wstawianie funkcji ES Wyszukaj funkcją: Przejdź Wpisz krótki opis tego, co chcesz
wstawokno Wstawianie funkcji Wyszukaj funkcję: Przejdź Vpisz krótki opis tego, co chcesz zrobić, a n
W 3 BMP Wstawianie funkcji-U-*! Wyszukaj funkcję: Przejdź Vpisz krótki opis tego, co chcesz zrobić,
W 3 Wstawianie funkcji-U-*! Wyszukaj funkcję: Przejdź Vpisz krótki opis tego, co chcesz zrobić, a
W 3 Wstawianie funkcji-U-*! Wyszukaj funkcję: Przejdź Vpisz krótki opis tego, co chcesz zrobić, a
wstawokno Wstawianie funkcji Wyszukaj funkcję: Przejdź Vpisz krótki opis tego, co chcesz zrobić, a n
Wstawianie funkcji Wstawianie funkcji ES Wyszukaj funkcją: Przejdź Wpisz krótki opis tego, co chcesz
ScannedImage 7 117 czyoh funkcji pomoonika misjonarka i opiekuna wspólnot lokalnych, co było praktyk
5 19 Wstawianie funkcji-Ud Wyszukaj funkcję: Przejdź Vpisz krótki opis tego, co chcesz zrobić, a nas
5 19 Wstawianie funkcji-Ud Wyszukaj funkcję: Przejdź Vpisz krótki opis tego, co chcesz zrobić, a nas
5 19 Wstawianie funkcji-Ud Wyszukaj funkcję: Przejdź Vpisz krótki opis tego, co chcesz zrobić, a nas
EX 1? Wstawianie funkcji Wyszukaj funkcję: Przejdź pisz krótki opis tego, co chcesz zrobić, a następ
Marcin Kropka umowy ubezpieczenia14, dokonać należy zgodnie z metodą, funkcjonalną, dominującą w
pełnią funkcję oporu przeciw wtargnięciu dokonanemu przy użyciu fizycznej przemocy wspomaganej przez
ALG7 5.1. Listy jednokierunkowe 117 Mając już komplet funkcji pusta, zestaw funkcji decyzyjnych i u
ALG 5 11.5. Całkowanie funkcji metodą Simpsona 275 Rys. II -I. Przybliżone całkowanie funkcji. Na da

więcej podobnych podstron