ALG#3

ALG#3



9.1. Programowanie typu „dziel-i-rządf 233

nięciami bitowymi1. Aby wyliczyć klasę tego algorytmu można sięgnąć do wzorów podanych w rozdziale 3 albo nie wysilać się zbytnio i dojść do wniosku, że... mamy do czynienia z 0(N2).

Skąd ta pewność? Wynika ona z obserwacji wynikłej podczas analizy procedury min_max: dokonaliśmy podziału problemu, ale w niczym nie zmniejszyliśmy ilości wykonywanej pracy. Cudów zatem nie będzie2! Zanim jednak rozczarujemy się na dobre do metody „dzicl-i-rządź”, popatrzmy na następujące „przepisanie” operacji X*Y w nieco inny sposób niż poprzednio:

X■ Y = AC ■ 2~- + [(A - B)(D-C) + AC + BD]27 + BD.

Mimo nieco bardziej skomplikowanej postaci (patrz algorytm Strassena!) zmniejszyliśmy ilość operacji mnożenia z 4 na 3 (AC i BD występują podwójnie, zatem za drugim użyciem można skorzystać z poprzedniego wyniku). Formuła rekuren-cyjna towarzysząca temu rozkładowi jest identyczna jak w przypadku poprzednim, wystarczy tylko zamienić •/ na 3. Wiedząc to, otrzymujemy natychmiast, że algorytm jest klasy ćż(jVIoi!:1) = o(x' iq).

Zachęca się Czytelnika do zbadania na różnych przykładach i przy użyciu różnorodnych założeń co do kosztów operacji elementarnych (+, -, przesunięcie bitowe), kiedy istotnie ten algorytm może dać „zauważalne” rezultaty w porównaniu z metodą klasyczną.

9.1.4.Inne znane algorytmy „dziel-i-rzgdź”

Nie eksponując specjalnie tego, już w rozdziałach poprzednich mogliśmy zapoznać się z kilkoma ciekawymi algorytmami, które można zaklasyfikować do metody „dziel-i-rządź".

Programem, który zdecydowanie „króluje” wśród nich, jest niewątpliwie słynny QuickSorl (patrz opis). Oferuje on znaczący wzrost szybkości sortowania i, co najważniejsze, jest przy tym niesłychanie prosty zarówno w zapisie, jak i ideowo.

Omówiony przy okazji rozpatrywania technik derekusyw'acji problem wież Hanoi (patrz rozdział 6) jest również dobrym przykładem inteligentnej dekompozycji

1

   Przypomnijmy, że mnożenie liczby przez potęgę podstawy systemu (21. 2:, 2!...) jest równoważne przesunięciu jej reprezentacji wewnętrznej o „wykładnik potęgi” miejsc w lewo (/, 2, i...).

2

   Dla niedowiarków dowód matematyczny: T(n) e o(Nl<>8;4) = 6)(.V ■ ).


Wyszukiwarka

Podobne podstrony:
ALG 5 9.1. Programowanie typu „dziel-i-rządź’ 225 zastosowaniem omawianej metody warto wziąć do ręk
ALG 7 9.1. Programowanie typu „dziel-i-rzgdź 227 Przypadek ogólny: • jeśli tablica ma rozmiar > 2
ALG 9 9.1. Programowanie typu „dziel-i-rzgdź" 229 żoność obliczeniową obli metod. Jeśli w istoc
ALG#1 9.1. Programowanie typu „dziel-i-rządź’’ 231 9.1. Programowanie typu „dziel-i-rządź’’
strona? 93 PSPICE. Widać tutaj nieocenioną rolę symulacji układów elektronicznych za pomocą programó
zadanie (2) /.udanie 3S1 6 Opracować zestaw programów typu producent - konsument realizujących przy
Oglądając wybrane programy tyPU tM , stępuje między mmi więcej różni/4 Sf^***"3 dostrzec, że
PSTJA_U46 Słuchacz potrafi wymienić dostępne programy typu CAT oraz opisać zasady ich
19 Inżynierowie nowej ery tej aplikacji jest współpraca z wieloma programami typu CAD. Jest to ważne
Aby zarządzać wielkością transferu sieciowego, administrator powinien wykorzystać program typu O tas
Antywirus Antyspyware Blokada programów typu exploit Antyphishing TrVb gracza ch ronion ego^ Vd &quo
ALG#9 9.3. Programowanie dynamiczne 239 Wbrew pozorom nic jest to paradoks technika programowania dy
ALG$1 9.3. Programowanie dynamiczne 241 9.3. Programowanie dynamiczne 241 Rys. 9- 2. Obliczanie wart
Aronson13 produkt) łub prowadząc programy typu (alk show». to jednak. jeśli chnd/i n id udział w spe
23 luty 07 (123) Rys. 3.7. Przykład wyznaczania masy, położenia środka masy i momentu bezwładności c
a)    Jakie jest prawdopodobieństwo, ze wybrana osoba ogląda programy typu reality sh

więcej podobnych podstron