9752256905

9752256905



Proste podejście do tego problemu polega na tym, by szukane liczby znale"xć niezależnie, np. najpierw minimum a potem maksimum. Takie rozwiązanie wymaga 2n — 2 porównań. Jego nieoptymalność wynika z tego, źe algorytm podczas szukania maksimum nie wykorzystuje w żaden sposób informacji jakie nabył o elementach zbioru S w czasie wyszukiwania minimum. W szczególności w trakcie szukania maksimum będą brały udział w porównaniach te elementy S-a, które podczas szukania minimum były porównywane z większymi od siebie elementami, a więc nie mogą być maksimum. To spostrzeżenie prowadzi do następującego algorytmu:

MinMaxl(S)

Sm * Sm < 0

for i = 1 to n div 2 do

porównaj a* z a„_j+i; mniejszą z tych liczb wstaw do zbioru Sm, a większą - do zbioru Sm

m <— min{a \ a G Sm}

M <— max{a \ a £ Sm}

if n parzyste then return (m, M)

else return (min(m,afn/2\),max(M,afn/2]))


Fakt 4 Algorytm MinMaxl wykonuje f|n — 2] porównań na elementach zbioru S.

Dowód. Niech n = 2m. W pętli for wykonywanych jest m porównań, a w dwóch następnych wierszach pom-1 porównań. W sumie mamy 3m — 2 = [|n — 2] porównań.

Gdy n = 2m + 1, algorytm najpierw znajduje minimum i maksimum w zbiorze S \ (a|n/2l }• Zbiór ten ma 2m elementów, a więc liczba wykonanych porównań wynosi 3m — 2. Ostatnia instrukcja wymaga dwóch porównań, co w sumie daje 3m porównań. Jak łatwo sprawdzić 3m = 3(n — l)/2 = [3(n — l)/2 — 1/2] =    — 2").    

Inne podejście polega na zastosowaniu strategii Dziel i Zwyciężaj: zbiór S dzielimy na dwie części, w każdej części znajdujemy minimum i maksimum, jako wynik dajemy mniejsze z minimów i większe z maksimów. Poniższa, niestaranna implementacja tego pomysłu nie osiąga jednak liczby porównań algorytmu MinMax 1 i powinna stanowić ostrzeżenie przed niefrasobliwym implementowaniem niedopracowanych algorytmów. Poprawienie tej implementacji pozostawiamy jako zadanie na ćwiczenia.

20



Wyszukiwarka

Podobne podstrony:
skanuj0070 (24) lonych filtrów na funkcjonowanie pamięci ludzkiej. Problem polega na tym, że trudno
majątku obrotowego. Należności są przeciwstawnym pojęciem do zobowiązań. Zobowiązanie polega na tym,
uważa że ktoś kto wnosi podanie, nie jest stroną. Był też problem polegający na tym, że często o tym
127 4.2. Stosowanie funkcji rekurencijjmjch Pierwszy problem polega na tym, że w teorii lambdy nie m
6 Jakie jest najpowszechniejsze podejście do marketingu w Internecie polegającego na wysyłaniu infor
0196 ,Kultura dyskusji polega na tym, by umieć ustąpić, gdy jest się w błędzie i me być niezno
HlSTEREZA - zjawisko polegające na tym, że zmiany parametrów charakteryzujących stan układu (np. cia
ostatni człowiek nie urzeczywistni Boga. Jego misja polega na tym, by pomagać wyzwolić ludzkość z je
img442 (4) 12 Sacrum i profanum Świętość i historia Nasze zasadnicze zadanie polega na tym, by przed
DSC00168 C8 Tony Buzan Mapy myśli Sztuka polega na tym, by za wsze znaleźć zalążek szansy, jakiś asp
89737 img442 (4) 12 Sacrum i profanum Świętość i historia Nasze zasadnicze zadanie polega na tym, by
img442 (4) 12 Sacrum i profanum Świętość i historia Nasze zasadnicze zadanie polega na tym, by przed
Polega na tym, źe notariusz lub powołany do tego organ zamieszcza na dokumencie klauzulę stwierdzają
Pomiary u osób starszych (2) do normy. Znaczenie tego zjawiska w praktyce klinicznej polega na tym,
CV 1 Rozdział 14WYCHOWANIE PREWENCYJNE Problem rodziców polega na tym, że niezależnie od tego, jak w
ONTOLOGIA Problem przechodzenia ciała z jednego stanu do drugiego - Wszelka zmiana polega na tym, że
img083 (11) Ed Ludbrook Problem rotacji polega na tym, że redukuje ona liczbę ludzi w Twoim zespole,

więcej podobnych podstron