Rzędy wielkości funkcji

Slides:



Advertisements
Podobne prezentacje
ALGORYTMY I STRUKTURY DANYCH
Advertisements

PRAM.
STRUKTURY DANYCH.
Sortowanie przez scalanie
Algorytmy sortowania i przeszukiwania
Analiza współzależności zjawisk
Zaawansowane techniki algorytmiczne
ALGORYTMY GRAFOWE.
METODY ANALIZY PROGRAMÓW
Metody Analizy Programów Wykład 02
Wykład 06 Metody Analizy Programów System Hoare
Algorytmy – zapis struktur programowania
Wykład 6 Najkrótsza ścieżka w grafie z jednym źródłem
Minimalne drzewa rozpinające
Programowanie I Rekurencja.
Techniki konstrukcji algorytmów
ALGORYTMY I STRUKTURY DANYCH
Iteracja, indukcja i rekurencja
Teoretyczne podstawy informatyki
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
Geometria obliczeniowa Wykład 1
Współprogramy III Ten wykład ma na celu pokazanie kolejnej ciekawej możliwości, którą oferują współprogramy. Wspólprogramy reprezentujące wyrażenia regularne.
pseudokody algorytmów
ZŁOŻONOŚĆ OBLICZENIOWA
ALGORYTMY GEOMETRYCZNE.
Turbo pascal – instrukcje warunkowe, iteracyjne,…
WYKŁAD 7. Spójność i rozpięte drzewa
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 8: Wykorzystanie procedur i funkcji © Jan Kaczmarek.
WYKŁAD 3. Kliki i zbiory niezależne
ALGORYTMY I STRUKTURY DANYCH
Jakość sieci geodezyjnych. Pomiary wykonane z największą starannością, nie dostarczają nam prawdziwej wartości mierzonej wielkości, lecz są zwykle obarczone.
Materiały pomocnicze do wykładu
Analiza kosztu zamortyzowanego
Schemat Hornera Mgr inż. Michał Szucki.
Algorytmy i struktury danych
Algorytmy i Struktury Danych Sortowanie
© A. Jędryczkowski – 2006 r. © A. Jędryczkowski – 2006 r.
Wyrażenia w Turbo Pascalu.
Algorytmy i struktury danych
Algorytmy i struktury danych
Równania rekurencyjne
formalnie: Algorytmy genetyczne i wstęp do algorytmów ewolucyjnych
Rodzaje, przechodzenie grafu
Instrukcja warunkowa i wyboru
Informatyka MZT1 Wykład 6 Iteracje while i repeat Tablice Rekordy
Ogólna struktura programu w TP
ALGORYTMY I STRUKTURY DANYCH WYKŁAD 03 cd. Wyszukiwanie Grażyna Mirkowska PJWSTK, 2003/2004.
Obliczanie NWD- algorytm Euklidesa
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
Algorytmy równoległe Algorytm równoległy pozwala na wykonywanie w danej chwili więcej niż jednej operacji. EREW - wyłączny odczyt i wyłączny zapis; CREW.
Złożoność obliczeniowa algorytmów
Rekurencje Rekurencja jest równaniem lub nierównością, opisującą funkcję w zależności od jej wartości dla danych wejściowych o mniejszych rozmiarach. Na.
Sortowanie: kopce Parent(i)
Wstęp do programowania Wykład 4
Wstęp do programowania Wykład 8 Łańcuchy, struktury i pliki Metoda dziel i zwyciężaj Metoda zachłanna.
Rekurencja - Haskell Bartosz Pawlak Sebastian Żółtowski Adam Stegenda Krystian Sobótka Tomasz Gołębiewski.
Rozdział 5 REKURENCJA.
Listy.
Geometria obliczeniowa Wykład 1
Efektywność algorytmów
Algorytmy i Struktury Danych Wprowadzenie
Algorytmy i struktury danych
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
Dane, zmienne, instrukcje
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
Informacje ogólne Mgr Inż. Jerzy Orlof
Zapis prezentacji:

Rzędy wielkości funkcji 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. Dla wszystkich n  n0 funkcja f(n) jest równa g(n) z dokładnością do stałego współczynnika; g(n) jest asymptotycznie dokładnym oszacowaniem dla f(n). Niech f(n) = c1 = 1/14, c2 = 1/2, n0 = 7 f(n) = (n2) mamy Dla każdego wielomianu

Rzędy wielkości funkcji 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. To oszacowanie nie musi być dokładnym; na przykład, n = O(n2). Ale też n = O(n). Notacja  (g(n)) = {f(n): istnieją stałe c i n0 takie, że 0  cg(n)  f(n) dla wszystkich n  n0}. Asymptotyczne ogranicza funkcję od dołu. Dla każdych dwóch funkcji f(n) i g(n) zachodzi zależność f(n) = (g(n)) wtedy i tylko wtedy, gdy f(n) = O(g(n)) i f(n) = (g(n)).

Quicksort - sortowanie szybkie Algorytm sortowania szybkiego jest oparty na technice „dziel i zwyciężaj”. Dziel: Tablica A[p…r] jest dzielona na dwie niepuste podtablice A[p…q] i A[q+1…r] takie, że każdy element A[p…q] jest nie większy niż każdy element A[q+1…r]. Zwyciężaj: Dwie podtablice A[p…q] i A[q+1…r] są sortowane za pomocą rekurencyjnych wywołań algorytmu Quicksort. Quicksort(A, p, r) 1 if p < r 2 then q := Partition(A, p, r) 3 Quicksort(A, p, q) 4 Quicksort(A, q+1, r)

Dzielenie tablicy Partition(A, p, r) 1 x := A[p] 2 i := p - 1 3 j := r + 1 4 while True 5 do repeat j := j - 1 6 until A[j]  x 7 repeat i := i + 1 8 until A[i]  x 9 if i < j 10 then zamień A[i]A[j] 11 else return j 5 3 2 8 6 4 1 7 i j 5 3 2 6 8 4 1 3 7 i j 3 3 2 6 8 4 1 5 7 i j 3 3 2 6 8 4 1 5 7 i j 3 3 2 1 4 6 5 7 i j

Czas działania Quicksort Najgorszy przypadek podziałów: (n2) Najlepszy przypadek podziałów: (n lg n) Czas działania w średnim przypadku zbliżony jest do najlepszego: (nlgn) n n n n 1 n-1 n n/2 n/2 n n/4 n/4 n/4 n/4 n n 1 n-2 n-1 n lg n 1 2 3 1 1 2 1 1 1 1 1 1 1 1 n Najlepszy przypadek Najgorszy przypadek (n lg n) (n2)

Probabilistyczna wersja Randomized-Partition(A, p, r) 1 i := Random(p, r) 2 zamień A[p]  A[i] 3 return Partition(A, p, r) Randomized-Quicksort(A, p, r) 1 if p < r 2 then q := Randomized-Partition(A, p, r) 3 Randomized-Quicksort(A, p, q) 3 Randomized-Quicksort(A, q+1, r)