Badanie złożoności algorytmów cz I 1

Badanie złożoności algorytmów cz I 1



BADANIE ZŁOŻONOŚCI ALGORYTMÓW CZĘŚĆ I

Miara sprawności danego algorytmu jest pamięć i czas potrzebny do jego wykonania. Mamy więc złożoność czasowa i pamięciowa.

Niewątpliwie czas obliczeń, a czasami i pamięć zależą od liczby danych wejściowych, głównie jednak zależą od złożoności naszego algorytmu. Sąalgorytmy, których wykonanie na obecnie dostępnych komputerach wymagałoby milionów lat. Takim przykładem jest rozłożenie na czynniki pierwsze liczby 300 cyfrowej — wymagałoby to rzeczywiście kilku milionów lat pracy najszybszych obecnie dostępnych komputerów. Liczba 300 cyfrowa jest do zapisania na odpowiednio długiej wstędze papieru, ale jak wielka to jest liczba zdać sobie można jedynie porównując ją np. z liczbą protonów w całym Wszechświecie — liczba 126 cyfrowa lub liczby mikrosekund od Wielkiego Wybuchu (~15 mld lat) — liczba 24 cyfrowa. Trzeba zatem ulepszać algorytmy —optymalizować ie.

Jedna z głównych metod optymalizacji polega na znajdywaniu wewnątrz pętli takich operacji, które mogą być wykonane poza nimi.

Przykład:

Rozważmy program, w którym pewną listę wartości L (1)...L (N) spełniająca dla I = 1 ...N warunek 0 L (I) < MAK (MAK — pewna liczba) trzeba unormować tak by mieściły się w przedziale od 1 do 100 czyli 0 < L (I) < 100.

Algorytm tego zadania jest prosty. Wystarcza jedna pętla.

Dla I od 1 do N wykonaj:

L (I): = L (I) * 100 / MAX

Czynność dzielenia 100 / MAK jest tu wykonana podczas każde iteracji pętli. Wystarczy wynieść ją przed pętlą: skala: = 100/MAK dla I od 1 do N wykonaj:

L (I): = L (I) * skala

by czas obliczeń skrócić do połowy (zamiast mnożenia i dzielenia tylko mnożenie).

Czasami trzeba dokonać pewnego triku uzyskania warunków dla takiej optymalizacji. Zilustruje to kolejny przykład.

Przykład — wyszukiwanie łiniowe:

Przeszukiwanie listy nie uporządkowanych elementów celem sprawdzenia czy jest na liście interesujący nas element E.

Najprościej, ale nie optymalnie:

Wykonanie dla każdego elementu listy (czyli w pętli):

a.    sprawdzenie czy dany element to E

b.    czy jest to ostatni element listy (koniec listy)

Spełnienie któregokolwiek z warunków oznacza koniec ze skutkiem pozytywnym lub nie. Na pozór obie czynności są nieodzowne i nie da się tu nic wyprowadzić poza pętlę. Ale jest prosta sztuczka polegająca na dodaniu na koniec listy w sposób sztuczny elementu szukanego E. Wtedy wystarczy sprawdzać w pętli tylko jeden warunek, czy dany element to E, jeśli tak — to wyjście, natomiast kontrola czy element znaleziony E był na końcu listy (jest ostatni elementem listy) można przeprowadzić tylko raz w momencie znalezienia E. Jeśli znaleziony element będzie ostatnim elementem listy to znaczy, że nie było go w oryginalnej liście. Jeśli zaś nie jest ostatni a znaleziono go, to znaczy że był w środku. I w ten sposób realizujemy ten algorytm w czasie, co najmniej dwukrotnie mniejszym. Nie wolno tylko zapomnieć o usunięciu sztucznie dodanego elementu z listy.


Wyszukiwarka

Podobne podstrony:
Badanie złożoności algorytmów cz II 1 BADANIE ZŁOŻONOŚCI ALGORYTMÓW CZĘSC IIRekurencja - a sprawność
Przygotowanie do badan rentgenodiagnostycznych: Pacjent do badania, odsłania tę część ciała, która
SAN DOM IERZ - WZGÓ RZE ZAWICH OJ SKIE - NEOLITYCZNA OSADA OBRONNA Badania 1981-1989 Część 1 St
916 PRZEGLĄD TECHNICZNY 1930 Badania naukowo-techniczne. Część referatów tej sekcji poświęcono
70565 Obraz (207) 5. NUKLEOTYDY, KWASY NUKLEINOWE, NUKLEOPROTEINY Nukleoproteiny są to białka złożon
2011 12 20 37 35 ćwiczenie *BADANIE REZONANSE ??AfjJfSr Część teoretyczna Rezonans występujacy w &n
17 zapach Badanie zapachu Wskazania • Część składowa badania skóry Badanie zapachu Metoda •
01 (127) Badania metalograficzne złącz spawanych 1. Wstęp Badania metalograficzne stanowią część bad
img034 (26) się podejmie badania filologiczne, trzeba najpierw przeprowadzić studia typograficzne.”
Karta pracy B2 Badanie właściwości redukujących witaminy C (zegar jodowy) Zegar jodowy jest jedną z
Badanie transformatora jednofazowego wobec tego sprawność P2 = U2I2 cos(p2(5.22) U2I2 cos(p2 U2I2
PA270151 Ćwiczenie 8:BADANIE PROCESU FILTRACJI ZAWIESINY 1. CEL ĆWICZENIA Celem ćwiczenia jest zapoz

więcej podobnych podstron