next up previous contents
Next: Algorytm sortowania Up: Przykłady algorytmów Previous: Przykłady algorytmów   Spis rzeczy

Prosty algorytm obliczania sumy elementów w tablicy

Algorytm oblicza sumę S n-elementów umieszczonych w tablicy A. Na wejściu otrzymujemy tę tablicę i jej wielkość (ilość danych), a po zakończeniu pracy maszyny w pamięci dzielonej określonej przez S jest umieszczony wynik obliczeń.

shared n;           // liczba elementów, dla uproszczenia \( n=2^{k}, \) \( k\in N \)

shared S;           // wynik obliczeń

shared A[1..65536]; // tablica danych wejściowych

shared B[1..65536]; // tablica pomocnicza

local i;            // indeks procesora

local h;            // zmienna pomocnicza dla pętli

begin

for i:= 1 to n pardo
B[i]:= A[i]; 
for h:= 1 to log(ndo
for i:= 1 to n/pow2(h) pardo
B[i]:= B[2*i-1] + B[2*i];
S:= B[1];
end.
Algorytm działa w czasie \( O\left( \log n\right) \) wykonując \( O\left( n\right) \) operacji dodawania. Używa przy tym \( O\left( n\right) \) procesorów. Jednoprocesorowy program sekwencyjny obliczający to samo działałby w czasie \( O\left( n\right) \) używając również \( O\left( n\right) \) operacji dodawania.



Łukasz Maśko
2000-04-17