ALG#2

ALG#2



232 Rozdział 9. Zaawansowane techniki programowania I 9

pozornie całą żądaną pamięć, faktycznie operuje jej „stronami”, które dosyla I mu w miarę potrzeb system operacyjny, sprawa może wyglądać już trochę gorzej. Drugim istotnym powodem spadku efektywności algorytmu dla dużych (praktycznie występujących) wartości N, jest kumulacja wielokrotnych wywołali rekurencyjnych i wzrastającej „zauważalności” roli operacji dodawania i odejmowania. Z wymienionych wyżej względów algorytm V. Strassena należy raczej traktować jako ciekawy wynik teoretyczny , o niepodważalnych walorach edukacyjnych!

9.1.3.Mnożenie liczb całkowitych

Kolejny przykład jest również natury obliczeniowej: zajmiemy się mnożeniem liczb całkowitych.

Mnożenie dw'óch liczb całkowitych X i Z, których reprezentacja wewnętrzna ma rozmiar /V-hitów, jest operacją klasy OfN2). Zakładamy, że mnożenie jest wykonywane klasycznie, tak jak nas tego nauczono w szkole podstawowej (sumujemy „w słupku” N wyników iloczynów cząstkow'ych. każdy z nich jest klasy O(n)).

Metoda „dziel-i-rządź” w przypadku mnożenia liczb całkowitych może być zastosowana po dokonaniu następującej obserwacji:

,v

X = [A B] = A *2y + B,

Y = [C D] = C *22 A-D.

A i B oraz C i D oznaczają odpowiednio „połówki” reprezentacji binarnych liczb X i Y. Iloczyn X*Y może być zapisany jako:

w    v

XY=AC-22 +(AD+ BC)-22 + BI).

Jeśli założymy, że A'jest potęgą liczby 2 (co jest generalnie prawdą we współczesnych komputerach), to możemy wyrazić złożoność obliczeniową programu przez:

T(V = 1,

T(N) = 4rfy V cN.

W równaniach tych zaznaczamy wpływ czterech kosztownych operacji mnożenia plus pewien proporcjonalny do N koszt związany z dodawaniami i przesu-


Wyszukiwarka

Podobne podstrony:
ALG 6 226 Rozdział 9. Zaawansowane techniki programowaniaĆwicz. 9-1 Proszę wyprowadzić wzory tłumacz
ALG 8 228 Rozdział 9. Zaawansowane techniki programowania • funkcja KOMB polega na najzwyklejszym po
ALG#0 230 Rozdział 9. Zaawansowane techniki programowania Koszt wyliczenia jednego elementu macierzy
ALG#4 234 Rozdział 9. Zaawansowane techniki programowania problemu. Mimo iź wersje iteracyjne i reku
ALG#6 236 Rozdział 9. Zaawansowane techniki programowania części plecaka przeznaczonej na sery y ’ w
ALG$0 240 Rozdział 9. Zaawansowane techniki programowania „programu wanie dynamiczne " •
ALG$2 242 Rozdział 9, Zaawansowane techniki programowania miejscach), chociaż w zoptymalizowanej wer
ALG 3 Rozdział 9Zaawansowane techniki programowania Rozdziały poprzednie (szczególnie 2 i 5) dostarc
ALG 4 224Rozdział 9. Zaawansowane techniki programowania Należy zdawać sobie bowiem sprawę z lego, i
ALG#8 238Rozdział 9. Zaawansowane techniki programowania if(i <n) X[i]=Z/W[i]; I void main() I do
Księgarnia PWN: Joe Celko - SQL. Zaawansowane techniki programowaniaSpis treści O
12 SQL. Zaawansowane techniki programowania 28.    Drzewa i hierarchie w języku
14 SQL. Zaawansowane techniki programowania 33. Optymalizowanie języka
4 SQL. Zaawansowane techniki programowania 2.
6 SQL. Zaawansowane techniki programowania 7.4.    Numery
SQL. Zaawansowane techniki programowania 17.2.6.    Złączenia zewnętrzne i funkcje
10 SQL. Zaawansowane techniki programowania 22. Tabele
assembler?86? 6 192 7. Wybrane techniki programowania to wydzielony fragment pamięci operacyjnej (
ALG6 36 Rozdział 2. Rekurencja każemy. W rozdziale 9 zostanie omówiona ciekawa technika programowan

więcej podobnych podstron