Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Algorytmy i struktury danych
Cz¦±¢ pierwsza
Prowadz¡cy: dr Andrzej Mróz,
Wydziaª Matematyki i Informatyki, Uniwersytet Mikoªaja Kopernika
1 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Opis przedmiotu
Zagadnienia, którymi si¦ zajmiemy:
metody projektowania algorytmów,
przykªady algorytmów, struktury danych, zªo»ono±¢ obliczeniowa.
Na ¢wiczeniach (laboratoriach):
implementowanie algorytmów z wykªadu,
projektowanie i implementowanie wªasnych algorytmów, szacowanie zªo»ono±ci obliczeniowej algorytmów.
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Opis przedmiotu
Zagadnienia, którymi si¦ zajmiemy:
metody projektowania algorytmów, przykªady algorytmów,
struktury danych, zªo»ono±¢ obliczeniowa.
Na ¢wiczeniach (laboratoriach):
implementowanie algorytmów z wykªadu,
projektowanie i implementowanie wªasnych algorytmów, szacowanie zªo»ono±ci obliczeniowej algorytmów.
2 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Opis przedmiotu
Zagadnienia, którymi si¦ zajmiemy:
metody projektowania algorytmów, przykªady algorytmów,
struktury danych,
zªo»ono±¢ obliczeniowa.
Na ¢wiczeniach (laboratoriach):
implementowanie algorytmów z wykªadu,
projektowanie i implementowanie wªasnych algorytmów, szacowanie zªo»ono±ci obliczeniowej algorytmów.
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Opis przedmiotu
Zagadnienia, którymi si¦ zajmiemy:
metody projektowania algorytmów, przykªady algorytmów,
struktury danych, zªo»ono±¢ obliczeniowa.
Na ¢wiczeniach (laboratoriach):
implementowanie algorytmów z wykªadu,
projektowanie i implementowanie wªasnych algorytmów, szacowanie zªo»ono±ci obliczeniowej algorytmów.
2 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Opis przedmiotu
Zagadnienia, którymi si¦ zajmiemy:
metody projektowania algorytmów, przykªady algorytmów,
struktury danych, zªo»ono±¢ obliczeniowa.
Na ¢wiczeniach (laboratoriach):
implementowanie algorytmów z wykªadu,
projektowanie i implementowanie wªasnych algorytmów, szacowanie zªo»ono±ci obliczeniowej algorytmów.
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Opis przedmiotu
Zagadnienia, którymi si¦ zajmiemy:
metody projektowania algorytmów, przykªady algorytmów,
struktury danych, zªo»ono±¢ obliczeniowa.
Na ¢wiczeniach (laboratoriach):
implementowanie algorytmów z wykªadu,
projektowanie i implementowanie wªasnych algorytmów,
szacowanie zªo»ono±ci obliczeniowej algorytmów.
2 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Opis przedmiotu
Zagadnienia, którymi si¦ zajmiemy:
metody projektowania algorytmów, przykªady algorytmów,
struktury danych, zªo»ono±¢ obliczeniowa.
Na ¢wiczeniach (laboratoriach):
implementowanie algorytmów z wykªadu,
projektowanie i implementowanie wªasnych algorytmów, szacowanie zªo»ono±ci obliczeniowej algorytmów.
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Opis przedmiotu
Plan wykªadu(mo»e ulega¢ drobnym modykacjom):
poj¦cie zªo»ono±ci obliczeniowej algorytmów,
przegl¡d wybranych algorytmów sortowania, wska¹niki w j¦zyku programowania,
podstawowe struktury danych (stosy, kolejki, listy), metody ich implementacji,
elementy teorii grafów, struktury danych do reprezentowania grafów,
zªo»one struktury danych, algorytmy rekurencyjne,
metody projektowania algorytmów (metoda przyrostowa, zachªanna, dziel i zwyci¦»aj, programowanie dynamiczne), wybrane algorytmy grafowe, tekstowe, geometryczne (analiza ich poprawno±ci, zªo»ono±ci, metody implementacji),
wybrane algorytmy aproksymacyjne.
3 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Opis przedmiotu
Plan wykªadu(mo»e ulega¢ drobnym modykacjom):
poj¦cie zªo»ono±ci obliczeniowej algorytmów, przegl¡d wybranych algorytmów sortowania,
wska¹niki w j¦zyku programowania,
podstawowe struktury danych (stosy, kolejki, listy), metody ich implementacji,
elementy teorii grafów, struktury danych do reprezentowania grafów,
zªo»one struktury danych, algorytmy rekurencyjne,
metody projektowania algorytmów (metoda przyrostowa, zachªanna, dziel i zwyci¦»aj, programowanie dynamiczne), wybrane algorytmy grafowe, tekstowe, geometryczne (analiza ich poprawno±ci, zªo»ono±ci, metody implementacji),
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Opis przedmiotu
Plan wykªadu(mo»e ulega¢ drobnym modykacjom):
poj¦cie zªo»ono±ci obliczeniowej algorytmów, przegl¡d wybranych algorytmów sortowania, wska¹niki w j¦zyku programowania,
podstawowe struktury danych (stosy, kolejki, listy), metody ich implementacji,
elementy teorii grafów, struktury danych do reprezentowania grafów,
zªo»one struktury danych, algorytmy rekurencyjne,
metody projektowania algorytmów (metoda przyrostowa, zachªanna, dziel i zwyci¦»aj, programowanie dynamiczne), wybrane algorytmy grafowe, tekstowe, geometryczne (analiza ich poprawno±ci, zªo»ono±ci, metody implementacji),
wybrane algorytmy aproksymacyjne.
3 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Opis przedmiotu
Plan wykªadu(mo»e ulega¢ drobnym modykacjom):
poj¦cie zªo»ono±ci obliczeniowej algorytmów, przegl¡d wybranych algorytmów sortowania, wska¹niki w j¦zyku programowania,
podstawowe struktury danych (stosy, kolejki, listy), metody ich implementacji,
elementy teorii grafów, struktury danych do reprezentowania grafów,
zªo»one struktury danych, algorytmy rekurencyjne,
metody projektowania algorytmów (metoda przyrostowa, zachªanna, dziel i zwyci¦»aj, programowanie dynamiczne), wybrane algorytmy grafowe, tekstowe, geometryczne (analiza ich poprawno±ci, zªo»ono±ci, metody implementacji),
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Opis przedmiotu
Plan wykªadu(mo»e ulega¢ drobnym modykacjom):
poj¦cie zªo»ono±ci obliczeniowej algorytmów, przegl¡d wybranych algorytmów sortowania, wska¹niki w j¦zyku programowania,
podstawowe struktury danych (stosy, kolejki, listy), metody ich implementacji,
elementy teorii grafów, struktury danych do reprezentowania grafów,
zªo»one struktury danych, algorytmy rekurencyjne,
metody projektowania algorytmów (metoda przyrostowa, zachªanna, dziel i zwyci¦»aj, programowanie dynamiczne), wybrane algorytmy grafowe, tekstowe, geometryczne (analiza ich poprawno±ci, zªo»ono±ci, metody implementacji),
wybrane algorytmy aproksymacyjne.
3 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Opis przedmiotu
Plan wykªadu(mo»e ulega¢ drobnym modykacjom):
poj¦cie zªo»ono±ci obliczeniowej algorytmów, przegl¡d wybranych algorytmów sortowania, wska¹niki w j¦zyku programowania,
podstawowe struktury danych (stosy, kolejki, listy), metody ich implementacji,
elementy teorii grafów, struktury danych do reprezentowania grafów,
zªo»one struktury danych,
algorytmy rekurencyjne,
metody projektowania algorytmów (metoda przyrostowa, zachªanna, dziel i zwyci¦»aj, programowanie dynamiczne), wybrane algorytmy grafowe, tekstowe, geometryczne (analiza ich poprawno±ci, zªo»ono±ci, metody implementacji),
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Opis przedmiotu
Plan wykªadu(mo»e ulega¢ drobnym modykacjom):
poj¦cie zªo»ono±ci obliczeniowej algorytmów, przegl¡d wybranych algorytmów sortowania, wska¹niki w j¦zyku programowania,
podstawowe struktury danych (stosy, kolejki, listy), metody ich implementacji,
elementy teorii grafów, struktury danych do reprezentowania grafów,
zªo»one struktury danych, algorytmy rekurencyjne,
metody projektowania algorytmów (metoda przyrostowa, zachªanna, dziel i zwyci¦»aj, programowanie dynamiczne), wybrane algorytmy grafowe, tekstowe, geometryczne (analiza ich poprawno±ci, zªo»ono±ci, metody implementacji),
wybrane algorytmy aproksymacyjne.
3 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Opis przedmiotu
Plan wykªadu(mo»e ulega¢ drobnym modykacjom):
poj¦cie zªo»ono±ci obliczeniowej algorytmów, przegl¡d wybranych algorytmów sortowania, wska¹niki w j¦zyku programowania,
podstawowe struktury danych (stosy, kolejki, listy), metody ich implementacji,
elementy teorii grafów, struktury danych do reprezentowania grafów,
zªo»one struktury danych, algorytmy rekurencyjne,
metody projektowania algorytmów (metoda przyrostowa, zachªanna, dziel i zwyci¦»aj, programowanie dynamiczne),
wybrane algorytmy grafowe, tekstowe, geometryczne (analiza ich poprawno±ci, zªo»ono±ci, metody implementacji),
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Opis przedmiotu
Plan wykªadu(mo»e ulega¢ drobnym modykacjom):
poj¦cie zªo»ono±ci obliczeniowej algorytmów, przegl¡d wybranych algorytmów sortowania, wska¹niki w j¦zyku programowania,
podstawowe struktury danych (stosy, kolejki, listy), metody ich implementacji,
elementy teorii grafów, struktury danych do reprezentowania grafów,
zªo»one struktury danych, algorytmy rekurencyjne,
metody projektowania algorytmów (metoda przyrostowa, zachªanna, dziel i zwyci¦»aj, programowanie dynamiczne), wybrane algorytmy grafowe, tekstowe, geometryczne (analiza ich poprawno±ci, zªo»ono±ci, metody implementacji),
wybrane algorytmy aproksymacyjne.
3 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Opis przedmiotu
Plan wykªadu(mo»e ulega¢ drobnym modykacjom):
poj¦cie zªo»ono±ci obliczeniowej algorytmów, przegl¡d wybranych algorytmów sortowania, wska¹niki w j¦zyku programowania,
podstawowe struktury danych (stosy, kolejki, listy), metody ich implementacji,
elementy teorii grafów, struktury danych do reprezentowania grafów,
zªo»one struktury danych, algorytmy rekurencyjne,
metody projektowania algorytmów (metoda przyrostowa, zachªanna, dziel i zwyci¦»aj, programowanie dynamiczne),
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Opis przedmiotu
Nie wszystko jest na slajdach!
4 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Literatura
1 T. H. Cormen, Ch. E. Leiserson, R. L. Rivest, Wprowadzenie do
algorytmów, WNT, Warszawa 2001.
2 D. Harel, Rzecz o istocie informatyki. Algorytmika, WNT,
Warszawa 1992.
3 A. V. Aho, J. E. Hopcroft, J. D. Ullman, Projektowanie i analiza
algorytmów komputerowych, Helion, Gliwice 2003.
4 L. Banachowski, K. Diks, W. Rytter, Algorytmy i struktury
danych, WNT, Warszawa 2006.
5 D. E. Knuth, Sztuka programowania, WNT, Warszawa 2002. 6 P. Sta«czyk, Algorytmika praktyczna. Nie tylko dla mistrzów,
PWN, Warszawa 2009.
7 V. V. Vazirani, Algorytmy aproksymacyjne, WNT, Warszawa
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Egzamin
Forma: egzamin praktyczny przy komputerze.
Samodzielna implementacja kilku wybranych algorytmów w tym algorytmów, które pojawi¡ sie na wykªadzie.
Forma poprawy: ustalana indywidualnie na podstawie wyników egzaminu.
6 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Podstawy
Algorytm= precyzyjnie okre±lony, jednoznaczny, sko«czony opis przetworzenia pewnych danych wej±ciowych do pewnych
danych wyj±ciowych.
Specykacja problemu obliczeniowego: trójka (D, X , f ), gdzie
D zbiór (zwany zbioremdanych wej±ciowych),
X zbiór (zwany zbioremdanych wyj±ciowychlubwyników), f : D → X funkcja.
Przykªad 1. Problem: liczenie silni liczby naturalnej. D = N, X = N, f (d) = d! Przykªad 2. Problem: test pierwszo±ci.
D = N\{1}, X = {True, False}, f (d) =
True, d jest l. pierwsz¡, False, d jest l. zªo»on¡.
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Podstawy
Algorytm= precyzyjnie okre±lony, jednoznaczny, sko«czony opis przetworzenia pewnych danych wej±ciowych do pewnych
danych wyj±ciowych.
Specykacja problemu obliczeniowego: trójka (D, X , f ), gdzie
D zbiór (zwany zbioremdanych wej±ciowych),
X zbiór (zwany zbioremdanych wyj±ciowychlubwyników), f : D → X funkcja.
Przykªad 1. Problem: liczenie silni liczby naturalnej. D = N, X = N, f (d) = d! Przykªad 2. Problem: test pierwszo±ci.
D = N\{1}, X = {True, False}, f (d) =
True, d jest l. pierwsz¡, False, d jest l. zªo»on¡.
7 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Podstawy
Algorytm= precyzyjnie okre±lony, jednoznaczny, sko«czony opis przetworzenia pewnych danych wej±ciowych do pewnych
danych wyj±ciowych.
Specykacja problemu obliczeniowego: trójka (D, X , f ), gdzie
D zbiór (zwany zbioremdanych wej±ciowych),
X zbiór (zwany zbioremdanych wyj±ciowychlubwyników), f : D → X funkcja.
Przykªad 1. Problem: liczenie silni liczby naturalnej. D = N, X = N, f (d) = d!
Przykªad 2. Problem: test pierwszo±ci. D = N\{1}, X = {True, False}, f (d) =
True, d jest l. pierwsz¡, False, d jest l. zªo»on¡.
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Podstawy
Algorytm= precyzyjnie okre±lony, jednoznaczny, sko«czony opis przetworzenia pewnych danych wej±ciowych do pewnych
danych wyj±ciowych.
Specykacja problemu obliczeniowego: trójka (D, X , f ), gdzie
D zbiór (zwany zbioremdanych wej±ciowych),
X zbiór (zwany zbioremdanych wyj±ciowychlubwyników), f : D → X funkcja.
Przykªad 1. Problem: liczenie silni liczby naturalnej. D = N, X = N, f (d) = d! Przykªad 2. Problem: test pierwszo±ci.
D = N\{1}, X = {True, False}, f (d) =
True, d jest l. pierwsz¡, False, d jest l. zªo»on¡.
7 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Podstawy
Def.: Algorytm A realizuj¡cy problem (D, X , f ) nazywamy
cz¦±ciowo poprawnym, gdy
∀d∈D je»eli A na d zatrzymuje si¦, to wynik x ∈ X speªnia f (d) = x.
Def.: Mówimy, »e algorytm A realizuj¡cy problem (D, X , f ) ma wªasno±¢stopu, gdy
∀d∈D A na d zatrzymuje si¦.
Def.: Algorytm A realizuj¡cy problem (D, X , f ) nazywamy
poprawnym, gdy
jest cz¦±ciowo poprawny, ma wªasno±¢ stopu.
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Podstawy
Def.: Algorytm A realizuj¡cy problem (D, X , f ) nazywamy
cz¦±ciowo poprawnym, gdy
∀d∈D je»eli A na d zatrzymuje si¦, to wynik x ∈ X speªnia f (d) = x.
Def.: Mówimy, »e algorytm A realizuj¡cy problem (D, X , f ) ma wªasno±¢stopu, gdy
∀d∈D A na d zatrzymuje si¦.
Def.: Algorytm A realizuj¡cy problem (D, X , f ) nazywamy
poprawnym, gdy
jest cz¦±ciowo poprawny, ma wªasno±¢ stopu.
8 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Podstawy
Def.: Algorytm A realizuj¡cy problem (D, X , f ) nazywamy
cz¦±ciowo poprawnym, gdy
∀d∈D je»eli A na d zatrzymuje si¦, to wynik x ∈ X speªnia f (d) = x.
Def.: Mówimy, »e algorytm A realizuj¡cy problem (D, X , f ) ma wªasno±¢stopu, gdy
∀d∈D A na d zatrzymuje si¦.
Def.: Algorytm A realizuj¡cy problem (D, X , f ) nazywamy
poprawnym, gdy
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Podstawy
Sposoby zapisywania algorytmu: 1 opisowy w j¦zyku naturalnym,
2 przy pomocy schematu blokowego,
3 przy pomocy konkretnego j¦zyka programowania (Pascal), 4 przy pomocypseudokodu:
uproszczonego kodu ª¡cz¡cego elementy skªadni j¦zyków programowania wysokiego poziomu z j¦zykiem naturalnym.
9 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Podstawy
Sposoby zapisywania algorytmu: 1 opisowy w j¦zyku naturalnym, 2 przy pomocy schematu blokowego,
3 przy pomocy konkretnego j¦zyka programowania (Pascal), 4 przy pomocypseudokodu:
uproszczonego kodu ª¡cz¡cego elementy skªadni j¦zyków programowania wysokiego poziomu z j¦zykiem naturalnym.
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Podstawy
Sposoby zapisywania algorytmu: 1 opisowy w j¦zyku naturalnym, 2 przy pomocy schematu blokowego,
3 przy pomocy konkretnego j¦zyka programowania (Pascal),
4 przy pomocypseudokodu:
uproszczonego kodu ª¡cz¡cego elementy skªadni j¦zyków programowania wysokiego poziomu z j¦zykiem naturalnym.
9 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Podstawy
Sposoby zapisywania algorytmu: 1 opisowy w j¦zyku naturalnym, 2 przy pomocy schematu blokowego,
3 przy pomocy konkretnego j¦zyka programowania (Pascal), 4 przy pomocypseudokodu:
uproszczonego kodu ª¡cz¡cego elementy skªadni j¦zyków programowania wysokiego poziomu z j¦zykiem naturalnym.
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Podstawy
Przykªad. Test pierwszo±ci. Specykacja: (D, X , f ). D = N\{1}, X = {True, False}, f (d) =
True, d jest l. pierwsz¡, False, d jest l. zªo»on¡.
Wykorzystamy
Lemat. Liczba naturalna n ≥ 2 jest zªo»ona ⇔ posiada dzielnik p ∈ N taki, »e
2 ≤ p ≤√n.
10 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Podstawy
Przykªad. Test pierwszo±ci. Specykacja: (D, X , f ). D = N\{1}, X = {True, False}, f (d) =
True, d jest l. pierwsz¡, False, d jest l. zªo»on¡. Wykorzystamy
Lemat. Liczba naturalna n ≥ 2 jest zªo»ona ⇔ posiada dzielnik p ∈ N taki, »e
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Podstawy
Ad 3: j¦zyk programowania Pascal. functionpierwsza(n : Integer ) : Boolean;
varp : Integer; B : Boolean; begin p := 2; B := True; while(p ∗ p <= n)andB do ifn mod p = 0thenB := False
elsep := p + 1; pierwsza := B
end;
Uwaga. Wªasno±¢ stopu i cz¦±ciowa poprawno±¢ wynika bezpo±rednio z lematu i konstrukcji p¦tli.
11 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Podstawy
Ad 3: j¦zyk programowania Pascal. functionpierwsza(n : Integer ) : Boolean;
varp : Integer; B : Boolean; begin p := 2; B := True; while(p ∗ p <= n)andB do ifn mod p = 0thenB := False
elsep := p + 1; pierwsza := B
end;
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Podstawy
Ad 4: pseudokod. Konwencje:
bez technik programowania jak kontrola bª¦dów, typów danych, obsªuga pami¦ci itp.,
brak deklaracji zmiennych,
skªadnia zbli»ona do Pascala (sªowa kluczowe),
nazwy procedur/funkcji na ogóª angloj¦zyczne (zgodno±¢ z literatur¡),
dopuszczamy wstawki w j¦zyku naturalnym (pl),
do zwracania warto±ci stosujemy klauzul¦ return(o semantyce jak w C).
12 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Podstawy
Ad 4: pseudokod. Konwencje:
bez technik programowania jak kontrola bª¦dów, typów danych, obsªuga pami¦ci itp.,
brak deklaracji zmiennych,
skªadnia zbli»ona do Pascala (sªowa kluczowe),
nazwy procedur/funkcji na ogóª angloj¦zyczne (zgodno±¢ z literatur¡),
dopuszczamy wstawki w j¦zyku naturalnym (pl),
do zwracania warto±ci stosujemy klauzul¦ return(o semantyce jak w C).
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Podstawy
Ad 4: pseudokod. Konwencje:
bez technik programowania jak kontrola bª¦dów, typów danych, obsªuga pami¦ci itp.,
brak deklaracji zmiennych,
skªadnia zbli»ona do Pascala (sªowa kluczowe),
nazwy procedur/funkcji na ogóª angloj¦zyczne (zgodno±¢ z literatur¡),
dopuszczamy wstawki w j¦zyku naturalnym (pl),
do zwracania warto±ci stosujemy klauzul¦ return(o semantyce jak w C).
12 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Podstawy
Ad 4: pseudokod. Konwencje:
bez technik programowania jak kontrola bª¦dów, typów danych, obsªuga pami¦ci itp.,
brak deklaracji zmiennych,
skªadnia zbli»ona do Pascala (sªowa kluczowe),
nazwy procedur/funkcji na ogóª angloj¦zyczne (zgodno±¢ z literatur¡),
dopuszczamy wstawki w j¦zyku naturalnym (pl),
do zwracania warto±ci stosujemy klauzul¦ return(o semantyce jak w C).
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Podstawy
Ad 4: pseudokod. Konwencje:
bez technik programowania jak kontrola bª¦dów, typów danych, obsªuga pami¦ci itp.,
brak deklaracji zmiennych,
skªadnia zbli»ona do Pascala (sªowa kluczowe),
nazwy procedur/funkcji na ogóª angloj¦zyczne (zgodno±¢ z literatur¡),
dopuszczamy wstawki w j¦zyku naturalnym (pl),
do zwracania warto±ci stosujemy klauzul¦ return(o semantyce jak w C).
12 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Podstawy
Ad 4: pseudokod. Konwencje:
bez technik programowania jak kontrola bª¦dów, typów danych, obsªuga pami¦ci itp.,
brak deklaracji zmiennych,
skªadnia zbli»ona do Pascala (sªowa kluczowe),
nazwy procedur/funkcji na ogóª angloj¦zyczne (zgodno±¢ z literatur¡),
dopuszczamy wstawki w j¦zyku naturalnym (pl),
do zwracania warto±ci stosujemy klauzul¦ return(o semantyce jak w C).
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Podstawy
begin p := 2; B := True; while(p ∗ p <= n)andB do ifn mod p = 0thenB := Falseelsep := p + 1; returnB end; lub begin p := 2; whilep ∗ p <= ndo
ifn mod p = 0then return False
elsep := p + 1;
returnTrue
end;
13 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Analiza algorytmów
czas oblicze«, pami¦¢ RAM, pami¦¢ dyskowa,
inne zasoby (szeroko±¢ ª¡cza komunikacji)...
Uwaga. Cz¦sto zmniejszenie zu»ycia jednych zasobów wymusza zwi¦kszenie zu»ycia innych!
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Analiza algorytmów
czas oblicze«, pami¦¢ RAM, pami¦¢ dyskowa,
inne zasoby (szeroko±¢ ª¡cza komunikacji)...
Uwaga. Cz¦sto zmniejszenie zu»ycia jednych zasobów wymusza zwi¦kszenie zu»ycia innych!
14 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Zªo»ono±¢ obliczeniowa (czasowa)
J = zbiór operacji jednostkowych okre±lonych dla konkretnego j¦zyka (Pascal)
Przyjmujemy
J = { operacje arytm., log., relac., instr. przypisania, przekazanie parametrów,... }
P program,
D zbiór danych wej±ciowych dla P
EXP(d) wykonanie P na d ∈ D (ci¡g instrukcji).
Zaªo»enie: ∀d∈D |EXP(d)| < ∞.
Def. Peªn¡ funkcj¡ kosztuprogramu P ze wzgl¦du na J nazywamy funkcj¦
t = tP,J :D → N,
okre±lon¡: t(d) = liczba operacji ze zbioru J wyst¦puj¡cych w EXP(d), dla d ∈ D.
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Zªo»ono±¢ obliczeniowa (czasowa)
J = zbiór operacji jednostkowych okre±lonych dla konkretnego j¦zyka (Pascal)
Przyjmujemy
J = { operacje arytm., log., relac., instr. przypisania, przekazanie parametrów,... }
P program,
D zbiór danych wej±ciowych dla P
EXP(d) wykonanie P na d ∈ D (ci¡g instrukcji).
Zaªo»enie: ∀d∈D |EXP(d)| < ∞.
Def. Peªn¡ funkcj¡ kosztuprogramu P ze wzgl¦du na J nazywamy funkcj¦
t = tP,J :D → N,
okre±lon¡: t(d) = liczba operacji ze zbioru J wyst¦puj¡cych w EXP(d), dla d ∈ D.
15 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Zªo»ono±¢ obliczeniowa (czasowa)
J = zbiór operacji jednostkowych okre±lonych dla konkretnego j¦zyka (Pascal)
Przyjmujemy
J = { operacje arytm., log., relac., instr. przypisania, przekazanie parametrów,... }
P program,
D zbiór danych wej±ciowych dla P
EXP(d) wykonanie P na d ∈ D (ci¡g instrukcji).
Zaªo»enie: ∀d∈D |EXP(d)| < ∞.
Def. Peªn¡ funkcj¡ kosztu programu P ze wzgl¦du na J nazywamy funkcj¦
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Zªo»ono±¢ obliczeniowa (czasowa)
Przykªad. Test pierwszo±ci. J = {:=, ∗, <=, +, =, and, mod }, D = N \ {1}. maks. begin p := 2; 1 B := True; 1 while(p ∗ p <= n)andB do 3·(b√nc + 1)
ifn mod p = 0thenB := False
2·b√nc+1 elsep := p + 1; 2·b√nc pierwsza := B 1 end; t(n) ≤ 1 + 1 + 3(b√nc + 1) + 2b√nc + 1 + 2b√nc + 1 =7b√nc + 7
Uwaga. Zakªadamy, »e wszystkie operacje jednostkowe wykonywane s¡ w czasie staªym!
16 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Zªo»ono±¢ obliczeniowa (czasowa)
Przykªad. Test pierwszo±ci. J = {:=, ∗, <=, +, =, and, mod }, D = N \ {1}. maks. begin p := 2; 1 B := True; 1 while(p ∗ p <= n)andB do 3 ·(b√nc + 1)
ifn mod p = 0thenB := False 2
·b√nc +1 elsep := p + 1; 2 ·b√nc pierwsza := B 1 end; t(n) ≤ 1 + 1 + 3(b√nc + 1) + 2b√nc + 1 + 2b√nc + 1 =7b√nc + 7
Uwaga. Zakªadamy, »e wszystkie operacje jednostkowe wykonywane s¡ w czasie staªym!
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Zªo»ono±¢ obliczeniowa (czasowa)
Przykªad. Test pierwszo±ci. J = {:=, ∗, <=, +, =, and, mod }, D = N \ {1}. maks. begin p := 2; 1 B := True; 1 while(p ∗ p <= n)andB do 3·(b√nc + 1)
ifn mod p = 0thenB := False 2·b√nc+1
elsep := p + 1; 2·b√nc
pierwsza := B 1
end;
t(n) ≤ 1 + 1 + 3(b√nc + 1) + 2b√nc + 1 + 2b√nc + 1 =7b√nc + 7
Uwaga. Zakªadamy, »e wszystkie operacje jednostkowe wykonywane s¡ w czasie staªym!
16 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Zªo»ono±¢ obliczeniowa (czasowa)
Przykªad. Test pierwszo±ci. J = {:=, ∗, <=, +, =, and, mod }, D = N \ {1}. maks. begin p := 2; 1 B := True; 1 while(p ∗ p <= n)andB do 3·(b√nc + 1)
ifn mod p = 0thenB := False 2·b√nc+1
elsep := p + 1; 2·b√nc
pierwsza := B 1
end;
t(n) ≤ 1 + 1 + 3(b√nc + 1) + 2b√nc + 1 + 2b√nc + 1 =7b√nc + 7
Uwaga. Zakªadamy, »e wszystkie operacje jednostkowe wykonywane s¡ w czasie staªym!
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Zªo»ono±¢ obliczeniowa (czasowa)
Przykªad. Test pierwszo±ci. J = {:=, ∗, <=, +, =, and, mod }, D = N \ {1}. maks. begin p := 2; 1 B := True; 1 while(p ∗ p <= n)andB do 3·(b√nc + 1)
ifn mod p = 0thenB := False 2·b√nc+1
elsep := p + 1; 2·b√nc
pierwsza := B 1
end;
t(n) ≤ 1 + 1 + 3(b√nc + 1) + 2b√nc + 1 + 2b√nc + 1 =7b√nc + 7
Uwaga. Zakªadamy, »e wszystkie operacje jednostkowe wykonywane s¡ w czasie staªym!
16 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Zªo»ono±¢ obliczeniowa (czasowa)
Przypadek pesymistyczny. n jest liczb¡ pierwsz¡. Wówczas t(n) = 7b√nc + 7.
Przypadek optymistyczny. n jest liczb¡ parzyst¡. Wówczas begin p := 2; 1 B := True; 1 while(p ∗ p <= n)andB do 3·2
ifn mod p = 0thenB := False
2+1 elsep := p + 1; 2·0 pierwsza := B 1 end; t(n) = 1 + 1 + 6 + 3 + 1 = 12. Wniosek. 12 ≤ t(n) ≤ 7b√nc + 7.
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Zªo»ono±¢ obliczeniowa (czasowa)
Przypadek pesymistyczny. n jest liczb¡ pierwsz¡. Wówczas t(n) = 7b√nc + 7.
Przypadek optymistyczny. n jest liczb¡ parzyst¡. Wówczas begin
p := 2; 1
B := True; 1
while(p ∗ p <= n)andB do 3
·2
ifn mod p = 0thenB := False 2+1
elsep := p + 1; 2 ·0 pierwsza := B 1 end; t(n) = 1 + 1 + 6 + 3 + 1 = 12. Wniosek. 12 ≤ t(n) ≤ 7b√nc + 7. 17 / 65 A. Mróz, WMiI, UMK
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Zªo»ono±¢ obliczeniowa (czasowa)
Przypadek pesymistyczny. n jest liczb¡ pierwsz¡. Wówczas t(n) = 7b√nc + 7.
Przypadek optymistyczny. n jest liczb¡ parzyst¡. Wówczas begin
p := 2; 1
B := True; 1
while(p ∗ p <= n)andB do 3·2
ifn mod p = 0thenB := False 2+1
elsep := p + 1; 2·0
pierwsza := B 1
end;
t(n) = 1 + 1 + 6 + 3 + 1 = 12. Wniosek. 12 ≤ t(n) ≤ 7b√nc + 7.
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Zªo»ono±¢ obliczeniowa (czasowa)
Przypadek pesymistyczny. n jest liczb¡ pierwsz¡. Wówczas t(n) = 7b√nc + 7.
Przypadek optymistyczny. n jest liczb¡ parzyst¡. Wówczas begin
p := 2; 1
B := True; 1
while(p ∗ p <= n)andB do 3·2
ifn mod p = 0thenB := False 2+1
elsep := p + 1; 2·0 pierwsza := B 1 end; t(n) = 1 + 1 + 6 + 3 + 1 = 12. Wniosek. 12 ≤ t(n) ≤ 7b√nc + 7. 17 / 65 A. Mróz, WMiI, UMK
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Zªo»ono±¢ obliczeniowa (czasowa)
Przypadek pesymistyczny. n jest liczb¡ pierwsz¡. Wówczas t(n) = 7b√nc + 7.
Przypadek optymistyczny. n jest liczb¡ parzyst¡. Wówczas begin
p := 2; 1
B := True; 1
while(p ∗ p <= n)andB do 3·2
ifn mod p = 0thenB := False 2+1
elsep := p + 1; 2·0
pierwsza := B 1
end;
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Zªo»ono±¢ uproszczenia
Ustalmy specykacj¦ problemu (D, X , f ), realizuj¡cy go program (algorytm) P oraz zbiór operacji J.
Def. Niech W b¦dzie niepustym zbiorem (zwanymzbiorem rozmiarów). Dowoln¡ funkcj¦ r : D → W nazywamyfunkcj¡ rozmiaru danych.
Def. Funkcj¡ kosztualgorytmu (programu) P przy ustalonych J, D, W , r nazywamy funkcj¦ (cz¦±ciow¡) T : W 99K N okre±lon¡ wzorem
T (w) := sup{t(d) : d ∈ D, r(d) = w }. Inne uproszczenia.
ograniczenie si¦ do zliczania operacji dominuj¡cych w danej linii,
ignorowanie linii wykonywanych w czasie staªym poza p¦tlami (ostro»nie!).
18 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Zªo»ono±¢ uproszczenia
Ustalmy specykacj¦ problemu (D, X , f ), realizuj¡cy go program (algorytm) P oraz zbiór operacji J.
Def. Niech W b¦dzie niepustym zbiorem (zwanymzbiorem rozmiarów). Dowoln¡ funkcj¦ r : D → W nazywamyfunkcj¡ rozmiaru danych.
Def. Funkcj¡ kosztualgorytmu (programu) P przy ustalonych J, D, W , r nazywamy funkcj¦ (cz¦±ciow¡) T : W 99K N okre±lon¡ wzorem
T (w) := sup{t(d) : d ∈ D, r(d) = w }. Inne uproszczenia.
ograniczenie si¦ do zliczania operacji dominuj¡cych w danej linii,
ignorowanie linii wykonywanych w czasie staªym poza p¦tlami (ostro»nie!).
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Zªo»ono±¢ uproszczenia
Ustalmy specykacj¦ problemu (D, X , f ), realizuj¡cy go program (algorytm) P oraz zbiór operacji J.
Def. Niech W b¦dzie niepustym zbiorem (zwanymzbiorem rozmiarów). Dowoln¡ funkcj¦ r : D → W nazywamyfunkcj¡ rozmiaru danych.
Def. Funkcj¡ kosztualgorytmu (programu) P przy ustalonych J, D, W , r nazywamy funkcj¦ (cz¦±ciow¡) T : W 99K N okre±lon¡ wzorem
T (w) := sup{t(d) : d ∈ D, r(d) = w }.
Inne uproszczenia.
ograniczenie si¦ do zliczania operacji dominuj¡cych w danej linii,
ignorowanie linii wykonywanych w czasie staªym poza p¦tlami (ostro»nie!).
18 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Zªo»ono±¢ uproszczenia
Ustalmy specykacj¦ problemu (D, X , f ), realizuj¡cy go program (algorytm) P oraz zbiór operacji J.
Def. Niech W b¦dzie niepustym zbiorem (zwanymzbiorem rozmiarów). Dowoln¡ funkcj¦ r : D → W nazywamyfunkcj¡ rozmiaru danych.
Def. Funkcj¡ kosztualgorytmu (programu) P przy ustalonych J, D, W , r nazywamy funkcj¦ (cz¦±ciow¡) T : W 99K N okre±lon¡ wzorem
T (w) := sup{t(d) : d ∈ D, r(d) = w }. Inne uproszczenia.
ograniczenie si¦ do zliczania operacji dominuj¡cych w danej linii,
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Zªo»ono±¢ przykªady
Problem: obliczanie warto±ci wielomianu. Tj. dla wielomianu p(x) = anxn+an−1xn−1+ . . . +a1x + a0∈ R[x] oraz x0 ∈ R,
obliczy¢ warto±¢ p(x0) ∈ R.
Specykacja: (D, X , f ), gdzie
D = {(n, a, x0) :n ∈ N, a = (a0, . . . ,an) ∈ Rn+1,x0 ∈ R},
X = R, f ((n, a, x0)) =anx0n+an−1x0n−1+ . . . +a1x0+a0. Funkcja rozmiaru danych: przyjmujemy W := N, r : D → W ,
r((n, a, x0)) =n.
19 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Zªo»ono±¢ przykªady
Problem: obliczanie warto±ci wielomianu. Tj. dla wielomianu p(x) = anxn+an−1xn−1+ . . . +a1x + a0∈ R[x] oraz x0 ∈ R,
obliczy¢ warto±¢ p(x0) ∈ R. Specykacja: (D, X , f ), gdzie
D = {(n, a, x0) :n ∈ N, a = (a0, . . . ,an) ∈ Rn+1,x0 ∈ R},
X = R, f ((n, a, x0)) =anx0n+an−1x0n−1+ . . . +a1x0+a0.
Funkcja rozmiaru danych: przyjmujemy W := N, r : D → W , r((n, a, x0)) =n.
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Zªo»ono±¢ przykªady
Problem: obliczanie warto±ci wielomianu. Tj. dla wielomianu p(x) = anxn+an−1xn−1+ . . . +a1x + a0∈ R[x] oraz x0 ∈ R,
obliczy¢ warto±¢ p(x0) ∈ R. Specykacja: (D, X , f ), gdzie
D = {(n, a, x0) :n ∈ N, a = (a0, . . . ,an) ∈ Rn+1,x0 ∈ R},
X = R, f ((n, a, x0)) =anx0n+an−1x0n−1+ . . . +a1x0+a0. Funkcja rozmiaru danych: przyjmujemy W := N, r : D → W ,
r((n, a, x0)) =n.
19 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Zªo»ono±¢ przykªady
Algorytm naiwny:
functionwielomian(n : Integer; a :array ofReal; x0 : Real) : Real;
vari, j : Integer; w, m : Real; begin w := 0; 1 for i := 0tondo 3·(n + 2) begin m := a[i]; 2·(n + 1) for j := 1toi do Pn i=0 3·(i + 1) m := m ∗ x0; Pn i=0 2·i w := w + m; 2·(n + 1) end; wielomian := w 1 end; t((n, a, x0)) = 12 + 7n + 3 Pni=0(i + 1) + 2 Pni=0i = = 12 + 7n + 3n2+3n+22 +2n22+n = 52n2+252 n + 15.
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Zªo»ono±¢ przykªady
Algorytm naiwny:
functionwielomian(n : Integer; a :array ofReal; x0 : Real) : Real;
vari, j : Integer; w, m : Real; begin w := 0; 1 for i := 0tondo 3 ·(n + 2) begin m := a[i]; 2 ·(n + 1) for j := 1toi do Pn i=0 3 ·(i + 1) m := m ∗ x0; Pn i=0 2 ·i w := w + m; 2 ·(n + 1) end; wielomian := w 1 end; t((n, a, x0)) = 12 + 7n + 3 Pni=0(i + 1) + 2 Pni=0i = = 12 + 7n + 3n2+3n+22 +2n22+n = 52n2+252 n + 15. 20 / 65 A. Mróz, WMiI, UMK
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Zªo»ono±¢ przykªady
Algorytm naiwny:
functionwielomian(n : Integer; a :array ofReal; x0 : Real) : Real;
vari, j : Integer; w, m : Real; begin w := 0; 1 for i := 0tondo 3 ·(n + 2) begin m := a[i]; 2 ·(n + 1) for j := 1toi do Pn i=0 3·(i + 1) m := m ∗ x0; Pn i=0 2·i w := w + m; 2 ·(n + 1) end; wielomian := w 1 end; t((n, a, x0)) = 12 + 7n + 3 Pni=0(i + 1) + 2 Pni=0i = = 12 + 7n + 3n2+3n+22 +2n22+n = 52n2+252 n + 15.
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Zªo»ono±¢ przykªady
Algorytm naiwny:
functionwielomian(n : Integer; a :array ofReal; x0 : Real) : Real;
vari, j : Integer; w, m : Real; begin w := 0; 1 for i := 0tondo 3·(n + 2) begin m := a[i]; 2·(n + 1) for j := 1toi do Pn i=0 3·(i + 1) m := m ∗ x0; Pn i=0 2·i w := w + m; 2·(n + 1) end; wielomian := w 1 end; t((n, a, x0)) = 12 + 7n + 3 Pni=0(i + 1) + 2 Pni=0i = = 12 + 7n + 3n2+3n+22 +2n22+n = 52n2+252 n + 15. 20 / 65 A. Mróz, WMiI, UMK
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Zªo»ono±¢ przykªady
Algorytm naiwny:
functionwielomian(n : Integer; a :array ofReal; x0 : Real) : Real;
vari, j : Integer; w, m : Real; begin w := 0; 1 for i := 0tondo 3·(n + 2) begin m := a[i]; 2·(n + 1) for j := 1toi do Pn i=0 3·(i + 1) m := m ∗ x0; Pn i=0 2·i w := w + m; 2·(n + 1) end; wielomian := w 1 end; t((n, a, x0)) = 12 + 7n + 3 Pni=0(i + 1) + 2 Pni=0i = = 12 + 7n + 3n2+3n+22 +2n22+n = 52n2+252 n + 15.
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Zªo»ono±¢ przykªady
Algorytm naiwny:
functionwielomian(n : Integer; a :array ofReal; x0 : Real) : Real;
vari, j : Integer; w, m : Real; begin w := 0; 1 for i := 0tondo 3·(n + 2) begin m := a[i]; 2·(n + 1) for j := 1toi do Pn i=0 3·(i + 1) m := m ∗ x0; Pn i=0 2·i w := w + m; 2·(n + 1) end; wielomian := w 1 end; t((n, a, x0)) = 12 + 7n + 3 Pni=0(i + 1) + 2 Pni=0i = = 12 + 7n + 3n2+3n+22 +2n22+n = 52n2+252 n + 15. 20 / 65 A. Mróz, WMiI, UMK
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Zªo»ono±¢ przykªady
Uwaga. Warto±¢ t((n, a, x0)) zale»y tylko od n
⇒ w tym wypadku
T (n) = t((n, a, x0)) = 52n2+25 2 n + 15
(przypomnijmy, »e funkcj¦ rozmiaru danych okre±lili±my wzorem r((n, a, x0)) =n,
zatem funkcja kosztu jest zadana:
T (w) := sup{t((n, a, x0)) : (n, a, x0) ∈D, r((n, a, x0)) =w }, dla w ∈ W = N).
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Zªo»ono±¢ przykªady
Uwaga. Warto±¢ t((n, a, x0)) zale»y tylko od n ⇒ w tym wypadku
T (n) = t((n, a, x0)) = 52n2+25 2 n + 15
(przypomnijmy, »e funkcj¦ rozmiaru danych okre±lili±my wzorem r((n, a, x0)) =n,
zatem funkcja kosztu jest zadana:
T (w) := sup{t((n, a, x0)) : (n, a, x0) ∈D, r((n, a, x0)) =w }, dla w ∈ W = N).
21 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Wielomiany usprawnienie
Metoda Hornera: n X i=0 aixi = (...(anx + an−1)x + . . . + a1)x + a0.functionHorner(n : Integer; a :array ofReal; x0 : Real) : Real;
vari : Integer; w : Real; begin w := a[n]; 1 fori := n − 1downto0do 3·(n + 1) w := w ∗ x0 + a[i]; 3·n Horner := w 1 end; T (n) = t((n, a, x0)) = 6n + 5.
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Wielomiany usprawnienie
Metoda Hornera: n X i=0 aixi = (...(anx + an−1)x + . . . + a1)x + a0.functionHorner(n : Integer; a :array ofReal; x0 : Real) : Real;
vari : Integer; w : Real; begin w := a[n]; 1 fori := n − 1downto0do 3·(n + 1) w := w ∗ x0 + a[i]; 3·n Horner := w 1 end; T (n) = t((n, a, x0)) = 6n + 5. 22 / 65 A. Mróz, WMiI, UMK
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Wielomiany usprawnienie
Metoda Hornera: n X i=0 aixi = (...(anx + an−1)x + . . . + a1)x + a0.functionHorner(n : Integer; a :array ofReal; x0 : Real) : Real;
vari : Integer; w : Real; begin w := a[n]; 1 fori := n − 1downto0do 3 ·(n + 1) w := w ∗ x0 + a[i]; 3 ·n Horner := w 1 end; T (n) = t((n, a, x0)) = 6n + 5.
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Wielomiany usprawnienie
Metoda Hornera: n X i=0 aixi = (...(anx + an−1)x + . . . + a1)x + a0.functionHorner(n : Integer; a :array ofReal; x0 : Real) : Real;
vari : Integer; w : Real; begin w := a[n]; 1 fori := n − 1downto0do 3·(n + 1) w := w ∗ x0 + a[i]; 3·n Horner := w 1 end; T (n) = t((n, a, x0)) = 6n + 5. 22 / 65 A. Mróz, WMiI, UMK
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Wielomiany usprawnienie
Metoda Hornera: n X i=0 aixi = (...(anx + an−1)x + . . . + a1)x + a0.functionHorner(n : Integer; a :array ofReal; x0 : Real) : Real;
vari : Integer; w : Real; begin w := a[n]; 1 fori := n − 1downto0do 3·(n + 1) w := w ∗ x0 + a[i]; 3·n Horner := w 1 end;
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
Ustalmy funkcj¦ g : N → N (cz¦sto funkcj¦ g uto»samiamy z jej wzorem g(n); dopuszczamy te» funkcje o warto±ciach w R+).
Def.
Ω(g(n)) := {f (n) : ∃c∈R+,n0∈N ∀n≥n0 0 ≤ cg(n) ≤ f (n) },
O(g(n)) := {f (n) : ∃c∈R+,n0∈N ∀n≥n0 0 ≤ f (n) ≤ cg(n) },
Θ(g(n)) := {f (n) : ∃c1,c2∈R+,n0∈N∀n≥n0 0 ≤ c1g(n) ≤ f (n) ≤ c2g(n) }.
Umowa. Zapis f (n) = Ω(g(n)) oznacza, »e f (n) ∈ Ω(g(n)) (analogicznie dla O, Θ).
23 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
Ustalmy funkcj¦ g : N → N (cz¦sto funkcj¦ g uto»samiamy z jej wzorem g(n); dopuszczamy te» funkcje o warto±ciach w R+).
Def.
Ω(g(n)) := {f (n) : ∃c∈R+,n0∈N ∀n≥n0 0 ≤ cg(n) ≤ f (n) },
O(g(n)) := {f (n) : ∃c∈R+,n0∈N ∀n≥n0 0 ≤ f (n) ≤ cg(n) },
Θ(g(n)) := {f (n) : ∃c1,c2∈R+,n0∈N∀n≥n0 0 ≤ c1g(n) ≤ f (n) ≤ c2g(n) }.
Umowa. Zapis f (n) = Ω(g(n)) oznacza, »e f (n) ∈ Ω(g(n)) (analogicznie dla O, Θ).
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
Ustalmy funkcj¦ g : N → N (cz¦sto funkcj¦ g uto»samiamy z jej wzorem g(n); dopuszczamy te» funkcje o warto±ciach w R+).
Def.
Ω(g(n)) := {f (n) : ∃c∈R+,n0∈N ∀n≥n0 0 ≤ cg(n) ≤ f (n) },
O(g(n)) := {f (n) : ∃c∈R+,n0∈N ∀n≥n0 0 ≤ f (n) ≤ cg(n) },
Θ(g(n)) := {f (n) : ∃c1,c2∈R+,n0∈N∀n≥n0 0 ≤ c1g(n) ≤ f (n) ≤ c2g(n) }.
Umowa. Zapis f (n) = Ω(g(n)) oznacza, »e f (n) ∈ Ω(g(n)) (analogicznie dla O, Θ).
23 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
Ustalmy funkcj¦ g : N → N (cz¦sto funkcj¦ g uto»samiamy z jej wzorem g(n); dopuszczamy te» funkcje o warto±ciach w R+).
Def.
Ω(g(n)) := {f (n) : ∃c∈R+,n0∈N ∀n≥n0 0 ≤ cg(n) ≤ f (n) },
O(g(n)) := {f (n) : ∃c∈R+,n0∈N ∀n≥n0 0 ≤ f (n) ≤ cg(n) },
Θ(g(n)) := {f (n) : ∃c1,c2∈R+,n0∈N∀n≥n0 0 ≤ c1g(n) ≤ f (n) ≤ c2g(n) }.
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
Gdy f (n) = Ω(g(n)), mówimy, »e g(n) jestasymptotyczn¡ granic¡ doln¡dla f (n) (lub, »e f (n) jest rz¦du co najmniej g(n)).
Gdy f (n) = O(g(n)), mówimy, »e g(n) jestasymptotyczn¡ granic¡ górn¡dla f (n) (lub, »e f (n) jest rz¦du co najwy»ej g(n)). Gdy f (n) = Θ(g(n)), mówimy, »e g(n) jestasymptotycznie dokªadnym oszacowaniemdla f (n) (lub, »e f (n) jest rz¦du dokªadnie g(n)).
Twierdzenie. Dla ka»dych dwóch funkcji f (n), g(n) zachodzi: f (n) ∈ Θ(g(n)) ⇔ f (n) ∈ Ω(g(n)) ∧ f (n) ∈ O(g(n)).
24 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
Gdy f (n) = Ω(g(n)), mówimy, »e g(n) jestasymptotyczn¡ granic¡ doln¡dla f (n) (lub, »e f (n) jest rz¦du co najmniej g(n)). Gdy f (n) = O(g(n)), mówimy, »e g(n) jestasymptotyczn¡ granic¡ górn¡dla f (n) (lub, »e f (n) jest rz¦du co najwy»ej g(n)).
Gdy f (n) = Θ(g(n)), mówimy, »e g(n) jestasymptotycznie dokªadnym oszacowaniemdla f (n) (lub, »e f (n) jest rz¦du dokªadnie g(n)).
Twierdzenie. Dla ka»dych dwóch funkcji f (n), g(n) zachodzi: f (n) ∈ Θ(g(n)) ⇔ f (n) ∈ Ω(g(n)) ∧ f (n) ∈ O(g(n)).
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
Gdy f (n) = Ω(g(n)), mówimy, »e g(n) jestasymptotyczn¡ granic¡ doln¡dla f (n) (lub, »e f (n) jest rz¦du co najmniej g(n)). Gdy f (n) = O(g(n)), mówimy, »e g(n) jestasymptotyczn¡ granic¡ górn¡dla f (n) (lub, »e f (n) jest rz¦du co najwy»ej g(n)). Gdy f (n) = Θ(g(n)), mówimy, »e g(n) jestasymptotycznie dokªadnym oszacowaniemdla f (n) (lub, »e f (n) jest rz¦du dokªadnie g(n)).
Twierdzenie. Dla ka»dych dwóch funkcji f (n), g(n) zachodzi: f (n) ∈ Θ(g(n)) ⇔ f (n) ∈ Ω(g(n)) ∧ f (n) ∈ O(g(n)).
24 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
Gdy f (n) = Ω(g(n)), mówimy, »e g(n) jestasymptotyczn¡ granic¡ doln¡dla f (n) (lub, »e f (n) jest rz¦du co najmniej g(n)). Gdy f (n) = O(g(n)), mówimy, »e g(n) jestasymptotyczn¡ granic¡ górn¡dla f (n) (lub, »e f (n) jest rz¦du co najwy»ej g(n)). Gdy f (n) = Θ(g(n)), mówimy, »e g(n) jestasymptotycznie dokªadnym oszacowaniemdla f (n) (lub, »e f (n) jest rz¦du dokªadnie g(n)).
Twierdzenie. Dla ka»dych dwóch funkcji f (n), g(n) zachodzi: f (n) ∈ Θ(g(n)) ⇔ f (n) ∈ Ω(g(n)) ∧ f (n) ∈ O(g(n)).
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
Najprostsze przykªady. (1) Niech f (n) = 5n2. Wówczas
oczywi±cie
0 ≤ 5n2 ≤f (n) ≤ 5n2, zatem
f (n) = Θ(n2)
(za staªe c1,c2,n0 mo»emy przyj¡¢ odpowiednio 5, 5, 1 patrz def.
zbioru Θ). (2) Niech f (n) = n2. Wówczas 0 ≤ n ≤ f (n) ⇒ f (n) = Ω(n), 0 ≤ f (n) ≤ n3 ⇒ f (n) = O(n3), ale f (n) /∈ Θ(n3), f (n) /∈ Θ(n). 25 / 65 A. Mróz, WMiI, UMK
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
Najprostsze przykªady. (1) Niech f (n) = 5n2. Wówczas
oczywi±cie
0 ≤ 5n2 ≤f (n) ≤ 5n2, zatem
f (n) = Θ(n2)
(za staªe c1,c2,n0 mo»emy przyj¡¢ odpowiednio 5, 5, 1 patrz def.
zbioru Θ). (2) Niech f (n) = n2. Wówczas 0 ≤ n ≤ f (n) ⇒ f (n) = Ω(n), 0 ≤ f (n) ≤ n3 ⇒ f (n) = O(n3), ale f (n) /∈ Θ(n3), f (n) /∈ Θ(n).
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
Najprostsze przykªady. (1) Niech f (n) = 5n2. Wówczas
oczywi±cie
0 ≤ 5n2 ≤f (n) ≤ 5n2, zatem
f (n) = Θ(n2)
(za staªe c1,c2,n0 mo»emy przyj¡¢ odpowiednio 5, 5, 1 patrz def.
zbioru Θ). (2) Niech f (n) = n2. Wówczas 0 ≤ n ≤ f (n) ⇒ f (n) = Ω(n), 0 ≤ f (n) ≤ n3 ⇒ f (n) = O(n3), ale f (n) /∈ Θ(n3), f (n) /∈ Θ(n). 25 / 65 A. Mróz, WMiI, UMK
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
Najprostsze przykªady. (1) Niech f (n) = 5n2. Wówczas
oczywi±cie
0 ≤ 5n2 ≤f (n) ≤ 5n2, zatem
f (n) = Θ(n2)
(za staªe c1,c2,n0 mo»emy przyj¡¢ odpowiednio 5, 5, 1 patrz def.
zbioru Θ).
(2) Niech f (n) = n2. Wówczas
0 ≤ n ≤ f (n) ⇒ f (n) = Ω(n), 0 ≤ f (n) ≤ n3 ⇒ f (n) = O(n3), ale
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
(3) Niech f (n) = k, dla ustalonego k ∈ N (tj. f jest funkcj¡ staª¡). Wówczas oczywi±cie 0 ≤ k · 1 ≤ f (n) ≤ k · 1 zatem f (n) = Θ(1). (4) 2n∈ Θ(/ n2), n2∈ Θ(/ 2n). (5) Dla b > 1 i d ≥ 0, nd = O(bn).
(6) Dla b > 1 i d > 0, logbn = O(nd).
26 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
(3) Niech f (n) = k, dla ustalonego k ∈ N (tj. f jest funkcj¡ staª¡). Wówczas oczywi±cie 0 ≤ k · 1 ≤ f (n) ≤ k · 1 zatem f (n) = Θ(1). (4) 2n∈ Θ(/ n2), n2 ∈ Θ(/ 2n). (5) Dla b > 1 i d ≥ 0, nd = O(bn).
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
(3) Niech f (n) = k, dla ustalonego k ∈ N (tj. f jest funkcj¡ staª¡). Wówczas oczywi±cie 0 ≤ k · 1 ≤ f (n) ≤ k · 1 zatem f (n) = Θ(1). (4) 2n∈ Θ(/ n2), n2 ∈ Θ(/ 2n). (5) Dla b > 1 i d ≥ 0, nd = O(bn).
(6) Dla b > 1 i d > 0, logbn = O(nd).
26 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
(3) Niech f (n) = k, dla ustalonego k ∈ N (tj. f jest funkcj¡ staª¡). Wówczas oczywi±cie 0 ≤ k · 1 ≤ f (n) ≤ k · 1 zatem f (n) = Θ(1). (4) 2n∈ Θ(/ n2), n2 ∈ Θ(/ 2n). (5) Dla b > 1 i d ≥ 0, nd = O(bn).
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
Inne wªasno±ci. 1 f (n) = Ω(f (n)), 2 f (n) = O(f (n)), 3 f (n) = Θ(f (n)), 4 f (n) = Θ(g(n)) ⇔ g(n) = Θ(f (n)), 5 f (n) = O(g(n)) ⇔ g(n) = Ω(f (n)),6 f (n) = O(g(n)) ∧ g(n) = O(h(n)) ⇒ f (n) = O(h(n))
(analogicznie dla Ω, Θ).
7 Dla staªej d ∈ R+, df (n) = O(f (n)) (analogicznie dla Ω, Θ).
27 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
Inne wªasno±ci. 1 f (n) = Ω(f (n)), 2 f (n) = O(f (n)), 3 f (n) = Θ(f (n)), 4 f (n) = Θ(g(n)) ⇔ g(n) = Θ(f (n)), 5 f (n) = O(g(n)) ⇔ g(n) = Ω(f (n)),6 f (n) = O(g(n)) ∧ g(n) = O(h(n)) ⇒ f (n) = O(h(n))
(analogicznie dla Ω, Θ).
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
Inne wªasno±ci. 1 f (n) = Ω(f (n)), 2 f (n) = O(f (n)), 3 f (n) = Θ(f (n)), 4 f (n) = Θ(g(n)) ⇔ g(n) = Θ(f (n)), 5 f (n) = O(g(n)) ⇔ g(n) = Ω(f (n)),6 f (n) = O(g(n)) ∧ g(n) = O(h(n)) ⇒ f (n) = O(h(n))
(analogicznie dla Ω, Θ).
7 Dla staªej d ∈ R+, df (n) = O(f (n)) (analogicznie dla Ω, Θ).
27 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
Inne wªasno±ci. 1 f (n) = Ω(f (n)), 2 f (n) = O(f (n)), 3 f (n) = Θ(f (n)), 4 f (n) = Θ(g(n)) ⇔ g(n) = Θ(f (n)), 5 f (n) = O(g(n)) ⇔ g(n) = Ω(f (n)),6 f (n) = O(g(n)) ∧ g(n) = O(h(n)) ⇒ f (n) = O(h(n))
(analogicznie dla Ω, Θ).
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
Inne wªasno±ci. 1 f (n) = Ω(f (n)), 2 f (n) = O(f (n)), 3 f (n) = Θ(f (n)), 4 f (n) = Θ(g(n)) ⇔ g(n) = Θ(f (n)), 5 f (n) = O(g(n)) ⇔ g(n) = Ω(f (n)),6 f (n) = O(g(n)) ∧ g(n) = O(h(n)) ⇒ f (n) = O(h(n))
(analogicznie dla Ω, Θ).
7 Dla staªej d ∈ R+, df (n) = O(f (n)) (analogicznie dla Ω, Θ).
27 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
Inne wªasno±ci. 1 f (n) = Ω(f (n)), 2 f (n) = O(f (n)), 3 f (n) = Θ(f (n)), 4 f (n) = Θ(g(n)) ⇔ g(n) = Θ(f (n)), 5 f (n) = O(g(n)) ⇔ g(n) = Ω(f (n)),6 f (n) = O(g(n)) ∧ g(n) = O(h(n)) ⇒ f (n) = O(h(n))
(analogicznie dla Ω, Θ).
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
Inne wªasno±ci. 1 f (n) = Ω(f (n)), 2 f (n) = O(f (n)), 3 f (n) = Θ(f (n)), 4 f (n) = Θ(g(n)) ⇔ g(n) = Θ(f (n)), 5 f (n) = O(g(n)) ⇔ g(n) = Ω(f (n)),6 f (n) = O(g(n)) ∧ g(n) = O(h(n)) ⇒ f (n) = O(h(n))
(analogicznie dla Ω, Θ).
7 Dla staªej d ∈ R+, df (n) = O(f (n)) (analogicznie dla Ω, Θ).
27 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
Uwaga. Niech
f (n) = adnd+ad−1nd−1+ . . .a1n + a0,
ad 6=0 (tj. f (n) jest wielomianem stopnia d). Wówczas
k ≥ d ⇒ f (n) = O(nk),
k ≤ d ⇒ f (n) = Ω(nk),
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
Uwaga. Niech
f (n) = adnd+ad−1nd−1+ . . .a1n + a0,
ad 6=0 (tj. f (n) jest wielomianem stopnia d). Wówczas
k ≥ d ⇒ f (n) = O(nk),
k ≤ d ⇒ f (n) = Ω(nk),
k = d ⇒ f (n) = Θ(nk).
28 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
Uwaga. Niech
f (n) = adnd+ad−1nd−1+ . . .a1n + a0,
ad 6=0 (tj. f (n) jest wielomianem stopnia d). Wówczas
k ≥ d ⇒ f (n) = O(nk),
k ≤ d ⇒ f (n) = Ω(nk),
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
Uwaga. Niech
f (n) = adnd+ad−1nd−1+ . . .a1n + a0,
ad 6=0 (tj. f (n) jest wielomianem stopnia d). Wówczas
k ≥ d ⇒ f (n) = O(nk),
k ≤ d ⇒ f (n) = Ω(nk),
k = d ⇒ f (n) = Θ(nk).
28 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
Ustalmy algorytm (program) P o zbiorze danych wej±ciowych D, funkcj¦ rozmiaru danych r : D → W oraz zbiór operacji J. Niech T : W 99K N b¦dzie funkcj¡ kosztu.
Def. Gdy T (n) = Ω(g(n)), mówimy, »e algorytm P ma zªo»ono±¢ rz¦du co najmniejg(n).
Def. Gdy T (n) = O(g(n)), mówimy, »e algorytm P ma zªo»ono±¢ rz¦du co najwy»ejg(n).
Def. Gdy T (n) = Θ(g(n)), mówimy, »e algorytm P ma zªo»ono±¢ rz¦dug(n) (dokªadnie g(n)).
Zªo»ono±¢ = asymptotyczna pesymistyczna zªo»ono±¢ obliczeniowa (czasowa).
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
Ustalmy algorytm (program) P o zbiorze danych wej±ciowych D, funkcj¦ rozmiaru danych r : D → W oraz zbiór operacji J. Niech T : W 99K N b¦dzie funkcj¡ kosztu.
Def. Gdy T (n) = Ω(g(n)), mówimy, »e algorytm P ma zªo»ono±¢ rz¦du co najmniejg(n).
Def. Gdy T (n) = O(g(n)), mówimy, »e algorytm P ma zªo»ono±¢ rz¦du co najwy»ejg(n).
Def. Gdy T (n) = Θ(g(n)), mówimy, »e algorytm P ma zªo»ono±¢ rz¦dug(n) (dokªadnie g(n)).
Zªo»ono±¢ = asymptotyczna pesymistyczna zªo»ono±¢ obliczeniowa (czasowa).
29 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
Ustalmy algorytm (program) P o zbiorze danych wej±ciowych D, funkcj¦ rozmiaru danych r : D → W oraz zbiór operacji J. Niech T : W 99K N b¦dzie funkcj¡ kosztu.
Def. Gdy T (n) = Ω(g(n)), mówimy, »e algorytm P ma zªo»ono±¢ rz¦du co najmniejg(n).
Def. Gdy T (n) = O(g(n)), mówimy, »e algorytm P ma zªo»ono±¢ rz¦du co najwy»ejg(n).
Def. Gdy T (n) = Θ(g(n)), mówimy, »e algorytm P ma zªo»ono±¢ rz¦dug(n) (dokªadnie g(n)).
Zªo»ono±¢ = asymptotyczna pesymistyczna zªo»ono±¢ obliczeniowa (czasowa).
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
Ustalmy algorytm (program) P o zbiorze danych wej±ciowych D, funkcj¦ rozmiaru danych r : D → W oraz zbiór operacji J. Niech T : W 99K N b¦dzie funkcj¡ kosztu.
Def. Gdy T (n) = Ω(g(n)), mówimy, »e algorytm P ma zªo»ono±¢ rz¦du co najmniejg(n).
Def. Gdy T (n) = O(g(n)), mówimy, »e algorytm P ma zªo»ono±¢ rz¦du co najwy»ejg(n).
Def. Gdy T (n) = Θ(g(n)), mówimy, »e algorytm P ma zªo»ono±¢ rz¦dug(n) (dokªadnie g(n)).
Zªo»ono±¢ = asymptotyczna pesymistyczna zªo»ono±¢ obliczeniowa (czasowa).
29 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
Ustalmy algorytm (program) P o zbiorze danych wej±ciowych D, funkcj¦ rozmiaru danych r : D → W oraz zbiór operacji J. Niech T : W 99K N b¦dzie funkcj¡ kosztu.
Def. Gdy T (n) = Ω(g(n)), mówimy, »e algorytm P ma zªo»ono±¢ rz¦du co najmniejg(n).
Def. Gdy T (n) = O(g(n)), mówimy, »e algorytm P ma zªo»ono±¢ rz¦du co najwy»ejg(n).
Def. Gdy T (n) = Θ(g(n)), mówimy, »e algorytm P ma zªo»ono±¢ rz¦dug(n) (dokªadnie g(n)).
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
Wró¢my do rozwa»anych algorytmów. (1) Test pierwszo±ci.
12 ≤ t(n) ≤ 7b√nc + 7.
Przy trywialnej funkcji rozmiaru danych r(n) = n, mamy T (n) = t(n). St¡d
T (n) = O(√n), ale T (n) /∈ Ω(√n), wi¦c
T (n) /∈ Θ(√n).
Nasz algorytm ma zªo»ono±¢ rz¦du co najwy»ej√n.
30 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
Wró¢my do rozwa»anych algorytmów. (1) Test pierwszo±ci.
12 ≤ t(n) ≤ 7b√nc + 7.
Przy trywialnej funkcji rozmiaru danych r(n) = n, mamy T (n) = t(n). St¡d
T (n) = O(√n), ale T (n) /∈ Ω(√n), wi¦c
T (n) /∈ Θ(√n).
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
Wró¢my do rozwa»anych algorytmów. (1) Test pierwszo±ci.
12 ≤ t(n) ≤ 7b√nc + 7.
Przy trywialnej funkcji rozmiaru danych r(n) = n, mamy T (n) = t(n).
St¡d
T (n) = O(√n), ale T (n) /∈ Ω(√n), wi¦c
T (n) /∈ Θ(√n).
Nasz algorytm ma zªo»ono±¢ rz¦du co najwy»ej√n.
30 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
Wró¢my do rozwa»anych algorytmów. (1) Test pierwszo±ci.
12 ≤ t(n) ≤ 7b√nc + 7.
Przy trywialnej funkcji rozmiaru danych r(n) = n, mamy T (n) = t(n). St¡d
T (n) = O(√n),
ale T (n) /∈ Ω(√n), wi¦c
T (n) /∈ Θ(√n).
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
Wró¢my do rozwa»anych algorytmów. (1) Test pierwszo±ci.
12 ≤ t(n) ≤ 7b√nc + 7.
Przy trywialnej funkcji rozmiaru danych r(n) = n, mamy T (n) = t(n). St¡d
T (n) = O(√n), ale T (n) /∈ Ω(√n), wi¦c
T (n) /∈ Θ(√n).
Nasz algorytm ma zªo»ono±¢ rz¦du co najwy»ej√n.
30 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
Wró¢my do rozwa»anych algorytmów. (1) Test pierwszo±ci.
12 ≤ t(n) ≤ 7b√nc + 7.
Przy trywialnej funkcji rozmiaru danych r(n) = n, mamy T (n) = t(n). St¡d
T (n) = O(√n), ale T (n) /∈ Ω(√n), wi¦c
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
(2) Naiwny algorytm liczenia warto±ci wielomianu.
T (n) = 52n2+25
2 n + 15. St¡d
T (n) = Θ(n2),
wi¦c algorytm ma zªo»ono±¢ dokªadnie rz¦du n2 (wielomianow¡
stopnia 2 lub kwadratow¡).
(3) Algorytm liczenia warto±ci wielomianu metod¡ Hornera. T (n) = 6n + 5.
St¡d
T (n) = Θ(n),
wi¦c algorytm ma zªo»ono±¢ dokªadnie rz¦du n (liniow¡).
31 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
(2) Naiwny algorytm liczenia warto±ci wielomianu. T (n) = 52n2+25
2 n + 15.
St¡d
T (n) = Θ(n2),
wi¦c algorytm ma zªo»ono±¢ dokªadnie rz¦du n2 (wielomianow¡
stopnia 2 lub kwadratow¡).
(3) Algorytm liczenia warto±ci wielomianu metod¡ Hornera. T (n) = 6n + 5.
St¡d
T (n) = Θ(n),
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
(2) Naiwny algorytm liczenia warto±ci wielomianu. T (n) = 52n2+25
2 n + 15. St¡d
T (n) = Θ(n2),
wi¦c algorytm ma zªo»ono±¢ dokªadnie rz¦du n2 (wielomianow¡
stopnia 2 lub kwadratow¡).
(3) Algorytm liczenia warto±ci wielomianu metod¡ Hornera. T (n) = 6n + 5.
St¡d
T (n) = Θ(n),
wi¦c algorytm ma zªo»ono±¢ dokªadnie rz¦du n (liniow¡).
31 / 65
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
(2) Naiwny algorytm liczenia warto±ci wielomianu. T (n) = 52n2+25
2 n + 15. St¡d
T (n) = Θ(n2),
wi¦c algorytm ma zªo»ono±¢ dokªadnie rz¦du n2 (wielomianow¡
stopnia 2 lub kwadratow¡).
(3) Algorytm liczenia warto±ci wielomianu metod¡ Hornera.
T (n) = 6n + 5. St¡d
T (n) = Θ(n),
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
(2) Naiwny algorytm liczenia warto±ci wielomianu. T (n) = 52n2+25
2 n + 15. St¡d
T (n) = Θ(n2),
wi¦c algorytm ma zªo»ono±¢ dokªadnie rz¦du n2 (wielomianow¡
stopnia 2 lub kwadratow¡).
(3) Algorytm liczenia warto±ci wielomianu metod¡ Hornera. T (n) = 6n + 5.
St¡d
T (n) = Θ(n),
wi¦c algorytm ma zªo»ono±¢ dokªadnie rz¦du n (liniow¡).
31 / 65