1 / 9

Złożoność obliczeniowa algorytmów

Złożoność obliczeniowa algorytmów. Literatura podstawowa. Thomas H. Cormen, Ch arles E. Leiserson, Ronald L. Rivest. Wprowadzenie do algorytmów. WNT, Warszawa, 1998. Edward M. Reingold, Jurg Nievergelt, Narsing Deo. Algorytmy kombinatoryczne. PWN, Warszawa, 1985.

kristy
Download Presentation

Złożoność obliczeniowa algorytmów

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Złożonośćobliczeniowa algorytmów Literatura podstawowa Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest. Wprowadzenie do algorytmów. WNT, Warszawa, 1998. Edward M. Reingold, Jurg Nievergelt, Narsing Deo. Algorytmy kombinatoryczne. PWN, Warszawa, 1985. Lech Banachowski, Antomi Kreczmar. Elementy analizy algorytmów. WNT, Warszawa, 1982. Lech Banachowski, Antomi Kreczmar, Wojciech Rytter. Analiza algorytmów i struktur danych. WNT, Warszawa, 1989.

  2. Algorytmy • Algorytm - ściśle określona procedura obliczeniowa, która dla właściwych danych wejściowych produkuje żądane dane wyjściowe (wynik działania algorytmu). • Rozmiar danych wejściowych - liczba elementów w ciągu wejściowym czy całkowita liczba bitów potrzebnych do reprezentowania tych danych. • Czas działania algorytmu - liczba wykonanych prostych operacji.

  3. Problemy • rozwiązywalne w czasie wielomianowym - O(nk) • rozwiązywalne, ale nie w czasie wielomianowym (np., w czasie wykładniczym - O(kn)) • nierozwiązywalne • NP-zupełne (status nieznany; rozwiązywalne, ale nie wiadomo, czy w czasie wielomianowym)

  4. Problemy • Nierozwiązywalne: na przykład, problem stopu - Dla danego algorytmu A odpowiedzieć, czy kończy pracę dla dowolnych danych wejściowych. • Łatwo rozwiązywalne: rozwiązywalne w czasie wielomianowym. • Trudno rozwiązywalne: nie jest znany (czy nie istnieje) algorytm rozwiązujący problem w czasie wielomianowym

  5. Czas działania algorytmów t t3(n) t2(n) (czas działania) t1(n) (rozmiar danych wejściowych) n0 n

  6. Przykład algorytmu Algorytm sortowania Insertion-Sort(A) 1. for j:=2 to length[A] 2. dokey:=A[j] /* Wstaw A[i] w posortowany ciąg A[1..j-1].*/ 3. i:= j-1 4. while i>0 i A[i] > key 5. doA[i+1]:= A[i] 6. i:= i-1 7. A[i+1]:= key Przykład działania algorytmu 5 2 4 6 1 3 2 5 4 6 1 3 2 4 5 6 1 3 2 4 5 6 1 3 1 2 4 5 6 3 1 2 3 4 5 6

  7. Przykład analizy algorytmu Insertion-Sort(A) koszt liczba wykonań 1. for j:=2 to length[A] c1 n 2. dokey:=A[i] c2n-1 3. i:= j-1 c3n-1 4. while i>0 i A[i] > key c4 5. doA[i+1]:= A[i] c5 6. i:= i-1 c6 7. A[i+1]:= key c7 n-1

  8. Przykład analizy algorytmu

  9. Czas działania algorytmów Notacja : (g(n)) = {f(n): istnieją stałe c1, c2 i n0 takie, że 0  c1g(n)  f(n)  c2g(n) dla wszystkich n  n0}. Asymptotyczne ogranicza funkcję od góry oraz od dołu. Notacja O: O(g(n)) = {f(n): istnieją stałe c i n0 takie, że 0  f(n)  cg(n) dla wszystkich n  n0}. Asymptotyczne ogranicza funkcję od góry. cg(n) c2g(n) f(n) f(n) c1g(n) f(n)=O(g(n)) f(n)=(g(n)) n n n0 n0

More Related