algorytmy i struktury danych - amroz/dydak/aisd/wyklad1.pdf · wykªad podstawy zªo»ono±¢...
TRANSCRIPT
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 / 65A. Mróz, WMiI, UMK
N
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 / 65A. Mróz, WMiI, UMK
N
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 / 65A. Mróz, WMiI, UMK
N
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 / 65A. Mróz, WMiI, UMK
N
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 / 65A. Mróz, WMiI, UMK
N
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 / 65A. Mróz, WMiI, UMK
N
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 / 65A. Mróz, WMiI, UMK
N
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 / 65A. Mróz, WMiI, UMK
N
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 ichimplementacji,
elementy teorii grafów, struktury danych do reprezentowaniagrafó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 ichpoprawno±ci, zªo»ono±ci, metody implementacji),
wybrane algorytmy aproksymacyjne.
3 / 65A. Mróz, WMiI, UMK
N
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 ichimplementacji,
elementy teorii grafów, struktury danych do reprezentowaniagrafó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 ichpoprawno±ci, zªo»ono±ci, metody implementacji),
wybrane algorytmy aproksymacyjne.
3 / 65A. Mróz, WMiI, UMK
N
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 ichimplementacji,
elementy teorii grafów, struktury danych do reprezentowaniagrafó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 ichpoprawno±ci, zªo»ono±ci, metody implementacji),
wybrane algorytmy aproksymacyjne.
3 / 65A. Mróz, WMiI, UMK
N
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 ichimplementacji,
elementy teorii grafów, struktury danych do reprezentowaniagrafó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 ichpoprawno±ci, zªo»ono±ci, metody implementacji),
wybrane algorytmy aproksymacyjne.
3 / 65A. Mróz, WMiI, UMK
N
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 ichimplementacji,
elementy teorii grafów, struktury danych do reprezentowaniagrafó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 ichpoprawno±ci, zªo»ono±ci, metody implementacji),
wybrane algorytmy aproksymacyjne.
3 / 65A. Mróz, WMiI, UMK
N
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 ichimplementacji,
elementy teorii grafów, struktury danych do reprezentowaniagrafó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 ichpoprawno±ci, zªo»ono±ci, metody implementacji),
wybrane algorytmy aproksymacyjne.
3 / 65A. Mróz, WMiI, UMK
N
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 ichimplementacji,
elementy teorii grafów, struktury danych do reprezentowaniagrafó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 ichpoprawno±ci, zªo»ono±ci, metody implementacji),
wybrane algorytmy aproksymacyjne.
3 / 65A. Mróz, WMiI, UMK
N
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 ichimplementacji,
elementy teorii grafów, struktury danych do reprezentowaniagrafó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 ichpoprawno±ci, zªo»ono±ci, metody implementacji),
wybrane algorytmy aproksymacyjne.
3 / 65A. Mróz, WMiI, UMK
N
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 ichimplementacji,
elementy teorii grafów, struktury danych do reprezentowaniagrafó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 ichpoprawno±ci, zªo»ono±ci, metody implementacji),
wybrane algorytmy aproksymacyjne.
3 / 65A. Mróz, WMiI, UMK
N
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 ichimplementacji,
elementy teorii grafów, struktury danych do reprezentowaniagrafó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 ichpoprawno±ci, zªo»ono±ci, metody implementacji),
wybrane algorytmy aproksymacyjne.3 / 65
A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Opis przedmiotu
Nie wszystko jest na slajdach!
4 / 65A. Mróz, WMiI, UMK
N
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, Warszawa2005.
Przydatny: podr¦cznik do j¦zyka Pascal.
5 / 65A. Mróz, WMiI, UMK
N
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ówegzaminu.
6 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Podstawy
Algorytm = precyzyjnie okre±lony, jednoznaczny, sko«czony opisprzetworzenia pewnych danych wej±ciowych do pewnychdanych wyj±ciowych.
Specykacja problemu obliczeniowego: trójka (D,X , f ), gdzie
D zbiór (zwany zbiorem danych wej±ciowych),
X zbiór (zwany zbiorem danych wyj±ciowych lub wynikó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 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Podstawy
Algorytm = precyzyjnie okre±lony, jednoznaczny, sko«czony opisprzetworzenia pewnych danych wej±ciowych do pewnychdanych wyj±ciowych.
Specykacja problemu obliczeniowego: trójka (D,X , f ), gdzie
D zbiór (zwany zbiorem danych wej±ciowych),
X zbiór (zwany zbiorem danych wyj±ciowych lub wynikó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 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Podstawy
Algorytm = precyzyjnie okre±lony, jednoznaczny, sko«czony opisprzetworzenia pewnych danych wej±ciowych do pewnychdanych wyj±ciowych.
Specykacja problemu obliczeniowego: trójka (D,X , f ), gdzie
D zbiór (zwany zbiorem danych wej±ciowych),
X zbiór (zwany zbiorem danych wyj±ciowych lub wynikó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 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Podstawy
Algorytm = precyzyjnie okre±lony, jednoznaczny, sko«czony opisprzetworzenia pewnych danych wej±ciowych do pewnychdanych wyj±ciowych.
Specykacja problemu obliczeniowego: trójka (D,X , f ), gdzie
D zbiór (zwany zbiorem danych wej±ciowych),
X zbiór (zwany zbiorem danych wyj±ciowych lub wynikó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 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Podstawy
Def.: Algorytm A realizuj¡cy problem (D,X , f ) nazywamycz¦±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 ) mawªasno±¢ stopu, gdy
∀d∈D A na d zatrzymuje si¦.
Def.: Algorytm A realizuj¡cy problem (D,X , f ) nazywamypoprawnym, gdy
jest cz¦±ciowo poprawny,
ma wªasno±¢ stopu.
8 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Podstawy
Def.: Algorytm A realizuj¡cy problem (D,X , f ) nazywamycz¦±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 ) mawªasno±¢ stopu, gdy
∀d∈D A na d zatrzymuje si¦.
Def.: Algorytm A realizuj¡cy problem (D,X , f ) nazywamypoprawnym, gdy
jest cz¦±ciowo poprawny,
ma wªasno±¢ stopu.
8 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Podstawy
Def.: Algorytm A realizuj¡cy problem (D,X , f ) nazywamycz¦±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 ) mawªasno±¢ stopu, gdy
∀d∈D A na d zatrzymuje si¦.
Def.: Algorytm A realizuj¡cy problem (D,X , f ) nazywamypoprawnym, gdy
jest cz¦±ciowo poprawny,
ma wªasno±¢ stopu.
8 / 65A. Mróz, WMiI, UMK
N
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 pomocy pseudokodu:
uproszczonego kodu ª¡cz¡cego elementy skªadni j¦zykówprogramowania wysokiego poziomu z j¦zykiem naturalnym.
9 / 65A. Mróz, WMiI, UMK
N
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 pomocy pseudokodu:
uproszczonego kodu ª¡cz¡cego elementy skªadni j¦zykówprogramowania wysokiego poziomu z j¦zykiem naturalnym.
9 / 65A. Mróz, WMiI, UMK
N
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 pomocy pseudokodu:
uproszczonego kodu ª¡cz¡cego elementy skªadni j¦zykówprogramowania wysokiego poziomu z j¦zykiem naturalnym.
9 / 65A. Mróz, WMiI, UMK
N
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 pomocy pseudokodu:
uproszczonego kodu ª¡cz¡cego elementy skªadni j¦zykówprogramowania wysokiego poziomu z j¦zykiem naturalnym.
9 / 65A. Mróz, WMiI, UMK
N
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 / 65A. Mróz, WMiI, UMK
N
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 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Podstawy
Ad 3: j¦zyk programowania Pascal.
function pierwsza(n : Integer ) : Boolean;
var p : Integer;
B : Boolean;
begin
p := 2;B := True;
while (p ∗ p <= n) and B do
if n mod p = 0 then B := False
else p := p + 1;pierwsza := B
end;
Uwaga. Wªasno±¢ stopu i cz¦±ciowa poprawno±¢ wynikabezpo±rednio z lematu i konstrukcji p¦tli.
11 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Podstawy
Ad 3: j¦zyk programowania Pascal.
function pierwsza(n : Integer ) : Boolean;
var p : Integer;
B : Boolean;
begin
p := 2;B := True;
while (p ∗ p <= n) and B do
if n mod p = 0 then B := False
else p := p + 1;pierwsza := B
end;
Uwaga. Wªasno±¢ stopu i cz¦±ciowa poprawno±¢ wynikabezpo±rednio z lematu i konstrukcji p¦tli.
11 / 65A. Mróz, WMiI, UMK
N
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 semantycejak w C).
12 / 65A. Mróz, WMiI, UMK
N
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 semantycejak w C).
12 / 65A. Mróz, WMiI, UMK
N
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 semantycejak w C).
12 / 65A. Mróz, WMiI, UMK
N
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 semantycejak w C).
12 / 65A. Mróz, WMiI, UMK
N
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 semantycejak w C).
12 / 65A. Mróz, WMiI, UMK
N
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 semantycejak w C).
12 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Podstawy
begin
p := 2;B := True;
while (p ∗ p <= n) and B do
if n mod p = 0 then B := False
else p := p + 1;return B
end;
lub
begin
p := 2;while p ∗ p <= n do
if n mod p = 0 then return False
else p := p + 1;return True
end;
13 / 65A. Mróz, WMiI, UMK
N
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 wymuszazwi¦kszenie zu»ycia innych!
14 / 65A. Mróz, WMiI, UMK
N
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 wymuszazwi¦kszenie zu»ycia innych!
14 / 65A. Mróz, WMiI, UMK
N
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 konkretnegoj¦zyka (Pascal)
Przyjmujemy
J = operacje arytm., log., relac., instr. przypisania, przekazanieparametró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¦t = tP,J : D → N,
okre±lon¡: t(d) = liczba operacji ze zbioru J wyst¦puj¡cychw EXP(d), dla d ∈ D.
15 / 65A. Mróz, WMiI, UMK
N
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 konkretnegoj¦zyka (Pascal)
Przyjmujemy
J = operacje arytm., log., relac., instr. przypisania, przekazanieparametró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¦t = tP,J : D → N,
okre±lon¡: t(d) = liczba operacji ze zbioru J wyst¦puj¡cychw EXP(d), dla d ∈ D.
15 / 65A. Mróz, WMiI, UMK
N
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 konkretnegoj¦zyka (Pascal)
Przyjmujemy
J = operacje arytm., log., relac., instr. przypisania, przekazanieparametró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¦t = tP,J : D → N,
okre±lon¡: t(d) = liczba operacji ze zbioru J wyst¦puj¡cychw EXP(d), dla d ∈ D.
15 / 65A. Mróz, WMiI, UMK
N
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) and B do
3·(b√nc+ 1)
if n mod p = 0 then B := False
2·b√nc+1
else p := 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 jednostkowewykonywane s¡ w czasie staªym!
16 / 65A. Mróz, WMiI, UMK
N
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; 1B := True; 1while (p ∗ p <= n) and B do 3
·(b√nc+ 1)
if n mod p = 0 then B := False 2
·b√nc
+1else p := p + 1; 2
·b√nc
pierwsza := B 1end;
t(n) ≤ 1+ 1+ 3(b√nc+ 1) + 2b
√nc+ 1+ 2b
√nc+ 1 = 7b
√nc+ 7
Uwaga. Zakªadamy, »e wszystkie operacje jednostkowewykonywane s¡ w czasie staªym!
16 / 65A. Mróz, WMiI, UMK
N
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; 1B := True; 1while (p ∗ p <= n) and B do 3·(b
√nc+ 1)
if n mod p = 0 then B := False 2·b√nc+1
else p := p + 1; 2·b√nc
pierwsza := B 1end;
t(n) ≤ 1+ 1+ 3(b√nc+ 1) + 2b
√nc+ 1+ 2b
√nc+ 1 = 7b
√nc+ 7
Uwaga. Zakªadamy, »e wszystkie operacje jednostkowewykonywane s¡ w czasie staªym!
16 / 65A. Mróz, WMiI, UMK
N
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; 1B := True; 1while (p ∗ p <= n) and B do 3·(b
√nc+ 1)
if n mod p = 0 then B := False 2·b√nc+1
else p := p + 1; 2·b√nc
pierwsza := B 1end;
t(n) ≤ 1+ 1+ 3(b√nc+ 1) + 2b
√nc+ 1+ 2b
√nc+ 1 = 7b
√nc+ 7
Uwaga. Zakªadamy, »e wszystkie operacje jednostkowewykonywane s¡ w czasie staªym!
16 / 65A. Mróz, WMiI, UMK
N
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; 1B := True; 1while (p ∗ p <= n) and B do 3·(b
√nc+ 1)
if n mod p = 0 then B := False 2·b√nc+1
else p := p + 1; 2·b√nc
pierwsza := B 1end;
t(n) ≤ 1+ 1+ 3(b√nc+ 1) + 2b
√nc+ 1+ 2b
√nc+ 1 = 7b
√nc+ 7
Uwaga. Zakªadamy, »e wszystkie operacje jednostkowewykonywane s¡ w czasie staªym!
16 / 65A. Mróz, WMiI, UMK
N
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) and B do
3·2
if n mod p = 0 then B := False
2+1
else p := p + 1;
2·0
pierwsza := B
1
end;
t(n) = 1 + 1 + 6 + 3 + 1 = 12.
Wniosek. 12 ≤ t(n) ≤ 7b√nc+ 7.
17 / 65A. Mróz, WMiI, UMK
N
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; 1B := True; 1while (p ∗ p <= n) and B do 3
·2
if n mod p = 0 then B := False 2+1else p := p + 1; 2
·0
pierwsza := B 1end;
t(n) = 1 + 1 + 6 + 3 + 1 = 12.
Wniosek. 12 ≤ t(n) ≤ 7b√nc+ 7.
17 / 65A. Mróz, WMiI, UMK
N
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; 1B := True; 1while (p ∗ p <= n) and B do 3·2
if n mod p = 0 then B := False 2+1else p := p + 1; 2·0
pierwsza := B 1end;
t(n) = 1 + 1 + 6 + 3 + 1 = 12.
Wniosek. 12 ≤ t(n) ≤ 7b√nc+ 7.
17 / 65A. Mróz, WMiI, UMK
N
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; 1B := True; 1while (p ∗ p <= n) and B do 3·2
if n mod p = 0 then B := False 2+1else p := p + 1; 2·0
pierwsza := B 1end;
t(n) = 1 + 1 + 6 + 3 + 1 = 12.
Wniosek. 12 ≤ t(n) ≤ 7b√nc+ 7.
17 / 65A. Mróz, WMiI, UMK
N
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; 1B := True; 1while (p ∗ p <= n) and B do 3·2
if n mod p = 0 then B := False 2+1else p := p + 1; 2·0
pierwsza := B 1end;
t(n) = 1 + 1 + 6 + 3 + 1 = 12.
Wniosek. 12 ≤ t(n) ≤ 7b√nc+ 7.
17 / 65A. Mróz, WMiI, UMK
N
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 (zwanym zbioremrozmiarów). Dowoln¡ funkcj¦ r : D →W nazywamy funkcj¡rozmiaru danych.
Def. Funkcj¡ kosztu algorytmu (programu) P przy ustalonychJ,D,W , r nazywamy funkcj¦ (cz¦±ciow¡) T : W 99K N okre±lon¡wzorem
T (w) := supt(d) : d ∈ D, r(d) = w .Inne uproszczenia.
ograniczenie si¦ do zliczania operacji dominuj¡cych w danejlinii,
ignorowanie linii wykonywanych w czasie staªym poza p¦tlami(ostro»nie!).
18 / 65A. Mróz, WMiI, UMK
N
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 (zwanym zbioremrozmiarów). Dowoln¡ funkcj¦ r : D →W nazywamy funkcj¡rozmiaru danych.
Def. Funkcj¡ kosztu algorytmu (programu) P przy ustalonychJ,D,W , r nazywamy funkcj¦ (cz¦±ciow¡) T : W 99K N okre±lon¡wzorem
T (w) := supt(d) : d ∈ D, r(d) = w .Inne uproszczenia.
ograniczenie si¦ do zliczania operacji dominuj¡cych w danejlinii,
ignorowanie linii wykonywanych w czasie staªym poza p¦tlami(ostro»nie!).
18 / 65A. Mróz, WMiI, UMK
N
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 (zwanym zbioremrozmiarów). Dowoln¡ funkcj¦ r : D →W nazywamy funkcj¡rozmiaru danych.
Def. Funkcj¡ kosztu algorytmu (programu) P przy ustalonychJ,D,W , r nazywamy funkcj¦ (cz¦±ciow¡) T : W 99K N okre±lon¡wzorem
T (w) := supt(d) : d ∈ D, r(d) = w .
Inne uproszczenia.ograniczenie si¦ do zliczania operacji dominuj¡cych w danejlinii,
ignorowanie linii wykonywanych w czasie staªym poza p¦tlami(ostro»nie!).
18 / 65A. Mróz, WMiI, UMK
N
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 (zwanym zbioremrozmiarów). Dowoln¡ funkcj¦ r : D →W nazywamy funkcj¡rozmiaru danych.
Def. Funkcj¡ kosztu algorytmu (programu) P przy ustalonychJ,D,W , r nazywamy funkcj¦ (cz¦±ciow¡) T : W 99K N okre±lon¡wzorem
T (w) := supt(d) : d ∈ D, r(d) = w .Inne uproszczenia.
ograniczenie si¦ do zliczania operacji dominuj¡cych w danejlinii,
ignorowanie linii wykonywanych w czasie staªym poza p¦tlami(ostro»nie!).
18 / 65A. Mróz, WMiI, UMK
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 wielomianup(x) = anx
n + 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)) = anxn0 + an−1x
n−10 + . . . + a1x0 + a0.
Funkcja rozmiaru danych: przyjmujemy W := N, r : D →W ,
r((n, a, x0)) = n.
19 / 65A. Mróz, WMiI, UMK
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 wielomianup(x) = anx
n + 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)) = anxn0 + an−1x
n−10 + . . . + a1x0 + a0.
Funkcja rozmiaru danych: przyjmujemy W := N, r : D →W ,
r((n, a, x0)) = n.
19 / 65A. Mróz, WMiI, UMK
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 wielomianup(x) = anx
n + 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)) = anxn0 + an−1x
n−10 + . . . + a1x0 + a0.
Funkcja rozmiaru danych: przyjmujemy W := N, r : D →W ,
r((n, a, x0)) = n.
19 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Zªo»ono±¢ przykªady
Algorytm naiwny:
function wielomian(n : Integer; a : array of Real; x0 : Real) : Real;var i , j : Integer;
w ,m : Real;
begin
w := 0;
1
for i := 0 to n do
3·(n + 2)
begin
m := a[i ];
2·(n + 1)
for j := 1 to i do
∑ni=0 3·(i + 1)
m := m ∗ x0;
∑ni=0 2·i
w := w +m;
2·(n + 1)
end;
wielomian := w
1
end;
t((n, a, x0)) = 12 + 7n + 3∑n
i=0(i + 1) + 2∑n
i=0 i =
= 12 + 7n + 3n2+3n+2
2 + 2n2+n2 = 5
2 n2 + 25
2 n + 15.
20 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Zªo»ono±¢ przykªady
Algorytm naiwny:
function wielomian(n : Integer; a : array of Real; x0 : Real) : Real;var i , j : Integer;
w ,m : Real;
begin
w := 0; 1for i := 0 to n do 3
·(n + 2)
begin
m := a[i ]; 2
·(n + 1)
for j := 1 to i do
∑ni=0
3
·(i + 1)
m := m ∗ x0;
∑ni=0
2
·i
w := w +m; 2
·(n + 1)
end;
wielomian := w 1end;
t((n, a, x0)) = 12 + 7n + 3∑n
i=0(i + 1) + 2∑n
i=0 i =
= 12 + 7n + 3n2+3n+2
2 + 2n2+n2 = 5
2 n2 + 25
2 n + 15.
20 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Zªo»ono±¢ przykªady
Algorytm naiwny:
function wielomian(n : Integer; a : array of Real; x0 : Real) : Real;var i , j : Integer;
w ,m : Real;
begin
w := 0; 1for i := 0 to n do 3
·(n + 2)
begin
m := a[i ]; 2
·(n + 1)
for j := 1 to i do
∑ni=0
3·(i + 1)m := m ∗ x0;
∑ni=0
2·iw := w +m; 2
·(n + 1)
end;
wielomian := w 1end;
t((n, a, x0)) = 12 + 7n + 3∑n
i=0(i + 1) + 2∑n
i=0 i =
= 12 + 7n + 3n2+3n+2
2 + 2n2+n2 = 5
2 n2 + 25
2 n + 15.
20 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Zªo»ono±¢ przykªady
Algorytm naiwny:
function wielomian(n : Integer; a : array of Real; x0 : Real) : Real;var i , j : Integer;
w ,m : Real;
begin
w := 0; 1for i := 0 to n do 3·(n + 2)
begin
m := a[i ]; 2·(n + 1)for j := 1 to i do
∑ni=0
3·(i + 1)m := m ∗ x0;
∑ni=0
2·iw := w +m; 2·(n + 1)
end;
wielomian := w 1end;
t((n, a, x0)) = 12 + 7n + 3∑n
i=0(i + 1) + 2∑n
i=0 i =
= 12 + 7n + 3n2+3n+2
2 + 2n2+n2 = 5
2 n2 + 25
2 n + 15.
20 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Zªo»ono±¢ przykªady
Algorytm naiwny:
function wielomian(n : Integer; a : array of Real; x0 : Real) : Real;var i , j : Integer;
w ,m : Real;
begin
w := 0; 1for i := 0 to n do 3·(n + 2)
begin
m := a[i ]; 2·(n + 1)for j := 1 to i do
∑ni=0 3·(i + 1)
m := m ∗ x0;∑n
i=0 2·iw := w +m; 2·(n + 1)
end;
wielomian := w 1end;
t((n, a, x0)) = 12 + 7n + 3∑n
i=0(i + 1) + 2∑n
i=0 i =
= 12 + 7n + 3n2+3n+2
2 + 2n2+n2 = 5
2 n2 + 25
2 n + 15.
20 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Zªo»ono±¢ przykªady
Algorytm naiwny:
function wielomian(n : Integer; a : array of Real; x0 : Real) : Real;var i , j : Integer;
w ,m : Real;
begin
w := 0; 1for i := 0 to n do 3·(n + 2)
begin
m := a[i ]; 2·(n + 1)for j := 1 to i do
∑ni=0 3·(i + 1)
m := m ∗ x0;∑n
i=0 2·iw := w +m; 2·(n + 1)
end;
wielomian := w 1end;
t((n, a, x0)) = 12 + 7n + 3∑n
i=0(i + 1) + 2∑n
i=0 i =
= 12 + 7n + 3n2+3n+2
2 + 2n2+n2 = 5
2 n2 + 25
2 n + 15.
20 / 65A. Mróz, WMiI, UMK
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)) =5
2n2 +
25
2n + 15
(przypomnijmy, »e funkcj¦ rozmiaru danych okre±lili±my wzorem
r((n, a, x0)) = n,
zatem funkcja kosztu jest zadana:
T (w) := supt((n, a, x0)) : (n, a, x0) ∈ D, r((n, a, x0)) = w ,
dla w ∈W = N).
21 / 65A. Mróz, WMiI, UMK
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)) =5
2n2 +
25
2n + 15
(przypomnijmy, »e funkcj¦ rozmiaru danych okre±lili±my wzorem
r((n, a, x0)) = n,
zatem funkcja kosztu jest zadana:
T (w) := supt((n, a, x0)) : (n, a, x0) ∈ D, r((n, a, x0)) = w ,
dla w ∈W = N).
21 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Wielomiany usprawnienie
Metoda Hornera:n∑
i=0
aixi = (...(anx + an−1)x + . . . + a1)x + a0.
function Horner(n : Integer; a : array of Real; x0 : Real) : Real;var i : Integer;
w : Real;
begin
w := a[n];
1
for i := n − 1 downto 0 do
3·(n + 1)
w := w ∗ x0+ a[i ];
3·n
Horner := w
1
end;
T (n) = t((n, a, x0)) = 6n + 5.
22 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Wielomiany usprawnienie
Metoda Hornera:n∑
i=0
aixi = (...(anx + an−1)x + . . . + a1)x + a0.
function Horner(n : Integer; a : array of Real; x0 : Real) : Real;var i : Integer;
w : Real;
begin
w := a[n];
1
for i := n − 1 downto 0 do
3·(n + 1)
w := w ∗ x0+ a[i ];
3·n
Horner := w
1
end;
T (n) = t((n, a, x0)) = 6n + 5.
22 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Wielomiany usprawnienie
Metoda Hornera:n∑
i=0
aixi = (...(anx + an−1)x + . . . + a1)x + a0.
function Horner(n : Integer; a : array of Real; x0 : Real) : Real;var i : Integer;
w : Real;
begin
w := a[n]; 1for i := n − 1 downto 0 do 3
·(n + 1)
w := w ∗ x0+ a[i ]; 3
·n
Horner := w 1end;
T (n) = t((n, a, x0)) = 6n + 5.
22 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Wielomiany usprawnienie
Metoda Hornera:n∑
i=0
aixi = (...(anx + an−1)x + . . . + a1)x + a0.
function Horner(n : Integer; a : array of Real; x0 : Real) : Real;var i : Integer;
w : Real;
begin
w := a[n]; 1for i := n − 1 downto 0 do 3·(n + 1)
w := w ∗ x0+ a[i ]; 3·nHorner := w 1
end;
T (n) = t((n, a, x0)) = 6n + 5.
22 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Wielomiany usprawnienie
Metoda Hornera:n∑
i=0
aixi = (...(anx + an−1)x + . . . + a1)x + a0.
function Horner(n : Integer; a : array of Real; x0 : Real) : Real;var i : Integer;
w : Real;
begin
w := a[n]; 1for i := n − 1 downto 0 do 3·(n + 1)
w := w ∗ x0+ a[i ]; 3·nHorner := w 1
end;
T (n) = t((n, a, x0)) = 6n + 5.
22 / 65A. Mróz, WMiI, UMK
N
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 jejwzorem 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 / 65A. Mróz, WMiI, UMK
N
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 jejwzorem 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 / 65A. Mróz, WMiI, UMK
N
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 jejwzorem 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 / 65A. Mróz, WMiI, UMK
N
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 jejwzorem 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 / 65A. Mróz, WMiI, UMK
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) jest asymptotyczn¡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) jest asymptotyczn¡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) jest asymptotyczniedokªadnym oszacowaniem dla f (n) (lub, »e f (n) jest rz¦dudokª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 / 65A. Mróz, WMiI, UMK
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) jest asymptotyczn¡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) jest asymptotyczn¡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) jest asymptotyczniedokªadnym oszacowaniem dla f (n) (lub, »e f (n) jest rz¦dudokª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 / 65A. Mróz, WMiI, UMK
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) jest asymptotyczn¡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) jest asymptotyczn¡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) jest asymptotyczniedokªadnym oszacowaniem dla f (n) (lub, »e f (n) jest rz¦dudokª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 / 65A. Mróz, WMiI, UMK
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) jest asymptotyczn¡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) jest asymptotyczn¡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) jest asymptotyczniedokªadnym oszacowaniem dla f (n) (lub, »e f (n) jest rz¦dudokª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 / 65A. Mróz, WMiI, UMK
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ówczasoczywi±cie
0 ≤ 5n2 ≤ f (n) ≤ 5n2,
zatemf (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),
alef (n) /∈ Θ(n3), f (n) /∈ Θ(n).
25 / 65A. Mróz, WMiI, UMK
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ówczasoczywi±cie
0 ≤ 5n2 ≤ f (n) ≤ 5n2,
zatemf (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),
alef (n) /∈ Θ(n3), f (n) /∈ Θ(n).
25 / 65A. Mróz, WMiI, UMK
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ówczasoczywi±cie
0 ≤ 5n2 ≤ f (n) ≤ 5n2,
zatemf (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),
alef (n) /∈ Θ(n3), f (n) /∈ Θ(n).
25 / 65A. Mróz, WMiI, UMK
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ówczasoczywi±cie
0 ≤ 5n2 ≤ f (n) ≤ 5n2,
zatemf (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),
alef (n) /∈ Θ(n3), f (n) /∈ Θ(n).
25 / 65A. Mróz, WMiI, UMK
N
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
zatemf (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 / 65A. Mróz, WMiI, UMK
N
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
zatemf (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 / 65A. Mróz, WMiI, UMK
N
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
zatemf (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 / 65A. Mróz, WMiI, UMK
N
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
zatemf (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 / 65A. Mróz, WMiI, UMK
N
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 / 65A. Mróz, WMiI, UMK
N
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 / 65A. Mróz, WMiI, UMK
N
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 / 65A. Mróz, WMiI, UMK
N
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 / 65A. Mróz, WMiI, UMK
N
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 / 65A. Mróz, WMiI, UMK
N
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 / 65A. Mróz, WMiI, UMK
N
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 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
Uwaga. Niech
f (n) = adnd + ad−1n
d−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 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
Uwaga. Niech
f (n) = adnd + ad−1n
d−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 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
Uwaga. Niech
f (n) = adnd + ad−1n
d−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 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢
Uwaga. Niech
f (n) = adnd + ad−1n
d−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 / 65A. Mróz, WMiI, UMK
N
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 najmniej g(n).
Def. Gdy T (n) = O(g(n)), mówimy, »e algorytm P mazªo»ono±¢ rz¦du co najwy»ej g(n).
Def. Gdy T (n) = Θ(g(n)), mówimy, »e algorytm P ma zªo»ono±¢rz¦du g(n) (dokªadnie g(n)).
Zªo»ono±¢ = asymptotyczna pesymistyczna zªo»ono±¢ obliczeniowa(czasowa).
29 / 65A. Mróz, WMiI, UMK
N
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 najmniej g(n).
Def. Gdy T (n) = O(g(n)), mówimy, »e algorytm P mazªo»ono±¢ rz¦du co najwy»ej g(n).
Def. Gdy T (n) = Θ(g(n)), mówimy, »e algorytm P ma zªo»ono±¢rz¦du g(n) (dokªadnie g(n)).
Zªo»ono±¢ = asymptotyczna pesymistyczna zªo»ono±¢ obliczeniowa(czasowa).
29 / 65A. Mróz, WMiI, UMK
N
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 najmniej g(n).
Def. Gdy T (n) = O(g(n)), mówimy, »e algorytm P mazªo»ono±¢ rz¦du co najwy»ej g(n).
Def. Gdy T (n) = Θ(g(n)), mówimy, »e algorytm P ma zªo»ono±¢rz¦du g(n) (dokªadnie g(n)).
Zªo»ono±¢ = asymptotyczna pesymistyczna zªo»ono±¢ obliczeniowa(czasowa).
29 / 65A. Mróz, WMiI, UMK
N
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 najmniej g(n).
Def. Gdy T (n) = O(g(n)), mówimy, »e algorytm P mazªo»ono±¢ rz¦du co najwy»ej g(n).
Def. Gdy T (n) = Θ(g(n)), mówimy, »e algorytm P ma zªo»ono±¢rz¦du g(n) (dokªadnie g(n)).
Zªo»ono±¢ = asymptotyczna pesymistyczna zªo»ono±¢ obliczeniowa(czasowa).
29 / 65A. Mróz, WMiI, UMK
N
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 najmniej g(n).
Def. Gdy T (n) = O(g(n)), mówimy, »e algorytm P mazªo»ono±¢ rz¦du co najwy»ej g(n).
Def. Gdy T (n) = Θ(g(n)), mówimy, »e algorytm P ma zªo»ono±¢rz¦du g(n) (dokªadnie g(n)).
Zªo»ono±¢ = asymptotyczna pesymistyczna zªo»ono±¢ obliczeniowa(czasowa).
29 / 65A. Mróz, WMiI, UMK
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, mamyT (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 / 65A. Mróz, WMiI, UMK
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, mamyT (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 / 65A. Mróz, WMiI, UMK
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, mamyT (n) = t(n).
St¡dT (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 / 65A. Mróz, WMiI, UMK
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, mamyT (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 / 65A. Mróz, WMiI, UMK
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, mamyT (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 / 65A. Mróz, WMiI, UMK
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, mamyT (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 / 65A. Mróz, WMiI, UMK
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) =5
2n2 +
25
2n + 15.
St¡dT (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¡dT (n) = Θ(n),
wi¦c algorytm ma zªo»ono±¢ dokªadnie rz¦du n (liniow¡).
31 / 65A. Mróz, WMiI, UMK
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) =5
2n2 +
25
2n + 15.
St¡dT (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¡dT (n) = Θ(n),
wi¦c algorytm ma zªo»ono±¢ dokªadnie rz¦du n (liniow¡).
31 / 65A. Mróz, WMiI, UMK
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) =5
2n2 +
25
2n + 15.
St¡dT (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¡dT (n) = Θ(n),
wi¦c algorytm ma zªo»ono±¢ dokªadnie rz¦du n (liniow¡).
31 / 65A. Mróz, WMiI, UMK
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) =5
2n2 +
25
2n + 15.
St¡dT (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¡dT (n) = Θ(n),
wi¦c algorytm ma zªo»ono±¢ dokªadnie rz¦du n (liniow¡).
31 / 65A. Mróz, WMiI, UMK
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) =5
2n2 +
25
2n + 15.
St¡dT (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¡dT (n) = Θ(n),
wi¦c algorytm ma zªo»ono±¢ dokªadnie rz¦du n (liniow¡).
31 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢Zaªó»my, »e
komputer I wykonuje 106 operacji na sekund¦,
komputer II wykonuje 109 operacji na sekund¦,
rozmiar danych: 105.
T (n) ≈ czas I ≈ czas II
n
0, 1 s. 0, 0001 s.
n · log n
1, 6 s. 0, 0016 s.
n2
2 h. 45 min. 10 s.
3n2
8 h. 15 min. 30 s.
n3
32 lata 11,5 dnia
2n
3,2 · 1030089 lat 3,2 · 1030086 lat
Wiek Wszech±wiata: ≈ 10 · 109 lat!
32 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢Zaªó»my, »e
komputer I wykonuje 106 operacji na sekund¦,
komputer II wykonuje 109 operacji na sekund¦,
rozmiar danych: 105.
T (n) ≈ czas I ≈ czas II
n 0, 1 s. 0, 0001 s.n · log n
1, 6 s. 0, 0016 s.
n2
2 h. 45 min. 10 s.
3n2
8 h. 15 min. 30 s.
n3
32 lata 11,5 dnia
2n
3,2 · 1030089 lat 3,2 · 1030086 lat
Wiek Wszech±wiata: ≈ 10 · 109 lat!
32 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢Zaªó»my, »e
komputer I wykonuje 106 operacji na sekund¦,
komputer II wykonuje 109 operacji na sekund¦,
rozmiar danych: 105.
T (n) ≈ czas I ≈ czas II
n 0, 1 s. 0, 0001 s.n · log n 1, 6 s. 0, 0016 s.
n2
2 h. 45 min. 10 s.
3n2
8 h. 15 min. 30 s.
n3
32 lata 11,5 dnia
2n
3,2 · 1030089 lat 3,2 · 1030086 lat
Wiek Wszech±wiata: ≈ 10 · 109 lat!
32 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢Zaªó»my, »e
komputer I wykonuje 106 operacji na sekund¦,
komputer II wykonuje 109 operacji na sekund¦,
rozmiar danych: 105.
T (n) ≈ czas I ≈ czas II
n 0, 1 s. 0, 0001 s.n · log n 1, 6 s. 0, 0016 s.
n2 2 h. 45 min. 10 s.3n2
8 h. 15 min. 30 s.
n3
32 lata 11,5 dnia
2n
3,2 · 1030089 lat 3,2 · 1030086 lat
Wiek Wszech±wiata: ≈ 10 · 109 lat!
32 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢Zaªó»my, »e
komputer I wykonuje 106 operacji na sekund¦,
komputer II wykonuje 109 operacji na sekund¦,
rozmiar danych: 105.
T (n) ≈ czas I ≈ czas II
n 0, 1 s. 0, 0001 s.n · log n 1, 6 s. 0, 0016 s.
n2 2 h. 45 min. 10 s.3n2 8 h. 15 min. 30 s.n3
32 lata 11,5 dnia
2n
3,2 · 1030089 lat 3,2 · 1030086 lat
Wiek Wszech±wiata: ≈ 10 · 109 lat!
32 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢Zaªó»my, »e
komputer I wykonuje 106 operacji na sekund¦,
komputer II wykonuje 109 operacji na sekund¦,
rozmiar danych: 105.
T (n) ≈ czas I ≈ czas II
n 0, 1 s. 0, 0001 s.n · log n 1, 6 s. 0, 0016 s.
n2 2 h. 45 min. 10 s.3n2 8 h. 15 min. 30 s.n3 32 lata 11,5 dnia2n
3,2 · 1030089 lat 3,2 · 1030086 lat
Wiek Wszech±wiata: ≈ 10 · 109 lat!
32 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢Zaªó»my, »e
komputer I wykonuje 106 operacji na sekund¦,
komputer II wykonuje 109 operacji na sekund¦,
rozmiar danych: 105.
T (n) ≈ czas I ≈ czas II
n 0, 1 s. 0, 0001 s.n · log n 1, 6 s. 0, 0016 s.
n2 2 h. 45 min. 10 s.3n2 8 h. 15 min. 30 s.n3 32 lata 11,5 dnia2n 3,2 · 1030089 lat 3,2 · 1030086 lat
Wiek Wszech±wiata: ≈ 10 · 109 lat!
32 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Asymptotyczna zªo»ono±¢Zaªó»my, »e
komputer I wykonuje 106 operacji na sekund¦,
komputer II wykonuje 109 operacji na sekund¦,
rozmiar danych: 105.
T (n) ≈ czas I ≈ czas II
n 0, 1 s. 0, 0001 s.n · log n 1, 6 s. 0, 0016 s.
n2 2 h. 45 min. 10 s.3n2 8 h. 15 min. 30 s.n3 32 lata 11,5 dnia2n 3,2 · 1030089 lat 3,2 · 1030086 lat
Wiek Wszech±wiata: ≈ 10 · 109 lat!
32 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Sortowanie
Sortowanie = ustawienie obiektów ustalonego typu (np. liczb,ci¡gów znaków...) wedªug ustalonego porz¡dku (np. ≤, ≥,porz¡dek leksykograczny...).
Lub ogólniej: porz¡dkowanie rekordów wzgl¦dem pewnego pola klucza.
33 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Sortowanie
Sortowanie = ustawienie obiektów ustalonego typu (np. liczb,ci¡gów znaków...) wedªug ustalonego porz¡dku (np. ≤, ≥,porz¡dek leksykograczny...).
Lub ogólniej: porz¡dkowanie rekordów wzgl¦dem pewnego pola klucza.
33 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Sortowanie przez wstawianie
5 2 4 6 1 3
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
34 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Sortowanie przez wstawianie
5 2 4 6 1 3
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
34 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Sortowanie przez wstawianie
5 2 4 6 1 3
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
34 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Sortowanie przez wstawianie
5 2 4 6 1 3
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
34 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Sortowanie przez wstawianie
5 2 4 6 1 3
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
34 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Sortowanie przez wstawianie
5 2 4 6 1 3
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
34 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Sortowanie przez wstawianie
5 2 4 6 1 3
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
34 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Sortowanie przez wstawianie
Wej±cie: tablica (ci¡g) n liczb A[1..n],
Wyj±cie: tablica A[1..n] skªadaj¡ca si¦ z elementów tablicy wej±ciowej, ale uporz¡d-kowana tak, »e A[1] ≤ A[2] ≤ . . . ≤ A[n].
Analiza zªo»ono±ci
zbiór danych wej±ciowych:
D = (n,A) : n ∈ N,A ∈ Rn,
zbiór rozmiarów W = N,funkcja rozmiaru r : D →W ,
r((n,A)) = n.
35 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Sortowanie przez wstawianie
Wej±cie: tablica (ci¡g) n liczb A[1..n],
Wyj±cie: tablica A[1..n] skªadaj¡ca si¦ z elementów tablicy wej±ciowej, ale uporz¡d-kowana tak, »e A[1] ≤ A[2] ≤ . . . ≤ A[n].
Analiza zªo»ono±ci
zbiór danych wej±ciowych:
D = (n,A) : n ∈ N,A ∈ Rn,
zbiór rozmiarów W = N,funkcja rozmiaru r : D →W ,
r((n,A)) = n.
35 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Sortowanie przez wstawianie
Wej±cie: tablica (ci¡g) n liczb A[1..n],
Wyj±cie: tablica A[1..n] skªadaj¡ca si¦ z elementów tablicy wej±ciowej, ale uporz¡d-kowana tak, »e A[1] ≤ A[2] ≤ . . . ≤ A[n].
Analiza zªo»ono±ci
zbiór danych wej±ciowych:
D = (n,A) : n ∈ N,A ∈ Rn,
zbiór rozmiarów W = N,
funkcja rozmiaru r : D →W ,
r((n,A)) = n.
35 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Sortowanie przez wstawianie
Wej±cie: tablica (ci¡g) n liczb A[1..n],
Wyj±cie: tablica A[1..n] skªadaj¡ca si¦ z elementów tablicy wej±ciowej, ale uporz¡d-kowana tak, »e A[1] ≤ A[2] ≤ . . . ≤ A[n].
Analiza zªo»ono±ci
zbiór danych wej±ciowych:
D = (n,A) : n ∈ N,A ∈ Rn,
zbiór rozmiarów W = N,funkcja rozmiaru r : D →W ,
r((n,A)) = n.
35 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Sortowanie przez wstawianie
Wej±cie: tablica (ci¡g) n liczb A[1..n],
Wyj±cie: tablica A[1..n] skªadaj¡ca si¦ z elementów tablicy wej±ciowej, ale uporz¡d-kowana tak, »e A[1] ≤ A[2] ≤ . . . ≤ A[n].
1 begin
2 for j := 2 to n do
n
3 begin
4 klucz := A[j];
n − 1
5 i := j − 1;
n − 1
6 while (i > 0) and (A[i ] > klucz) do
∑nj=2(tj + 1)
7 begin
8 A[i + 1] := A[i ];
∑nj=2 tj
9 i := i − 1
∑nj=2 tj
10 end;
11 A[i + 1] := klucz
n − 1
12 end
13 end
tj = liczba wykona« ciaªa wewn¦trznej p¦tli dla j ∈ 2, . . . , n.
36 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Sortowanie przez wstawianie
Wej±cie: tablica (ci¡g) n liczb A[1..n],
Wyj±cie: tablica A[1..n] skªadaj¡ca si¦ z elementów tablicy wej±ciowej, ale uporz¡d-kowana tak, »e A[1] ≤ A[2] ≤ . . . ≤ A[n].
1 begin
2 for j := 2 to n do
n
3 begin
4 klucz := A[j];
n − 1
5 i := j − 1;
n − 1
6 while (i > 0) and (A[i ] > klucz) do
∑nj=2(tj + 1)
7 begin
8 A[i + 1] := A[i ];
∑nj=2 tj
9 i := i − 1
∑nj=2 tj
10 end;
11 A[i + 1] := klucz
n − 1
12 end
13 end
tj = liczba wykona« ciaªa wewn¦trznej p¦tli dla j ∈ 2, . . . , n.
36 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Sortowanie przez wstawianie
Wej±cie: tablica (ci¡g) n liczb A[1..n],
Wyj±cie: tablica A[1..n] skªadaj¡ca si¦ z elementów tablicy wej±ciowej, ale uporz¡d-kowana tak, »e A[1] ≤ A[2] ≤ . . . ≤ A[n].
1 begin
2 for j := 2 to n do n
3 begin
4 klucz := A[j]; n − 15 i := j − 1; n − 16 while (i > 0) and (A[i ] > klucz) do
∑nj=2(tj + 1)
7 begin
8 A[i + 1] := A[i ];
∑nj=2 tj
9 i := i − 1
∑nj=2 tj
10 end;
11 A[i + 1] := klucz n − 112 end
13 end
tj = liczba wykona« ciaªa wewn¦trznej p¦tli dla j ∈ 2, . . . , n.
36 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Sortowanie przez wstawianie
Wej±cie: tablica (ci¡g) n liczb A[1..n],
Wyj±cie: tablica A[1..n] skªadaj¡ca si¦ z elementów tablicy wej±ciowej, ale uporz¡d-kowana tak, »e A[1] ≤ A[2] ≤ . . . ≤ A[n].
1 begin
2 for j := 2 to n do n
3 begin
4 klucz := A[j]; n − 15 i := j − 1; n − 16 while (i > 0) and (A[i ] > klucz) do
∑nj=2(tj + 1)
7 begin
8 A[i + 1] := A[i ];∑n
j=2 tj9 i := i − 1
∑nj=2 tj
10 end;
11 A[i + 1] := klucz n − 112 end
13 end
tj = liczba wykona« ciaªa wewn¦trznej p¦tli dla j ∈ 2, . . . , n.
36 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Sortowanie przez wstawianie
Peªna funkcja kosztu:
t((n,A)) = (4n − 3) + 2n∑
j=2tj +
n∑j=2
(tj + 1) = (5n − 4) + 3n∑
j=2tj
(zale»y od A !).
Przypadek optymistyczny: A posortowana⇒ tj = 0
⇒ t((n,A)) = 5n − 4 = Θ(n).
Przypadek pesymistyczny: A posortowana odwrotnie⇒ tj = j − 1
⇒ t((n,A)) = 5n − 4 + 3n(n−1)2 = 32 n
2 + 72 n − 4 = Θ(n2).
Funkcja kosztu: T (n) = 32 n
2 + 72 n − 4 = Θ(n2).
37 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Sortowanie przez wstawianie
Peªna funkcja kosztu:
t((n,A)) = (4n − 3) + 2n∑
j=2tj +
n∑j=2
(tj + 1) = (5n − 4) + 3n∑
j=2tj
(zale»y od A !).
Przypadek optymistyczny: A posortowana
⇒ tj = 0
⇒ t((n,A)) = 5n − 4 = Θ(n).
Przypadek pesymistyczny: A posortowana odwrotnie⇒ tj = j − 1
⇒ t((n,A)) = 5n − 4 + 3n(n−1)2 = 32 n
2 + 72 n − 4 = Θ(n2).
Funkcja kosztu: T (n) = 32 n
2 + 72 n − 4 = Θ(n2).
37 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Sortowanie przez wstawianie
Peªna funkcja kosztu:
t((n,A)) = (4n − 3) + 2n∑
j=2tj +
n∑j=2
(tj + 1) = (5n − 4) + 3n∑
j=2tj
(zale»y od A !).
Przypadek optymistyczny: A posortowana⇒ tj = 0
⇒ t((n,A)) = 5n − 4 = Θ(n).
Przypadek pesymistyczny: A posortowana odwrotnie⇒ tj = j − 1
⇒ t((n,A)) = 5n − 4 + 3n(n−1)2 = 32 n
2 + 72 n − 4 = Θ(n2).
Funkcja kosztu: T (n) = 32 n
2 + 72 n − 4 = Θ(n2).
37 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Sortowanie przez wstawianie
Peªna funkcja kosztu:
t((n,A)) = (4n − 3) + 2n∑
j=2tj +
n∑j=2
(tj + 1) = (5n − 4) + 3n∑
j=2tj
(zale»y od A !).
Przypadek optymistyczny: A posortowana⇒ tj = 0
⇒ t((n,A)) = 5n − 4 = Θ(n).
Przypadek pesymistyczny: A posortowana odwrotnie⇒ tj = j − 1
⇒ t((n,A)) = 5n − 4 + 3n(n−1)2 = 32 n
2 + 72 n − 4 = Θ(n2).
Funkcja kosztu: T (n) = 32 n
2 + 72 n − 4 = Θ(n2).
37 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Sortowanie przez wstawianie
Peªna funkcja kosztu:
t((n,A)) = (4n − 3) + 2n∑
j=2tj +
n∑j=2
(tj + 1) = (5n − 4) + 3n∑
j=2tj
(zale»y od A !).
Przypadek optymistyczny: A posortowana⇒ tj = 0
⇒ t((n,A)) = 5n − 4 = Θ(n).
Przypadek pesymistyczny: A posortowana odwrotnie
⇒ tj = j − 1
⇒ t((n,A)) = 5n − 4 + 3n(n−1)2 = 32 n
2 + 72 n − 4 = Θ(n2).
Funkcja kosztu: T (n) = 32 n
2 + 72 n − 4 = Θ(n2).
37 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Sortowanie przez wstawianie
Peªna funkcja kosztu:
t((n,A)) = (4n − 3) + 2n∑
j=2tj +
n∑j=2
(tj + 1) = (5n − 4) + 3n∑
j=2tj
(zale»y od A !).
Przypadek optymistyczny: A posortowana⇒ tj = 0
⇒ t((n,A)) = 5n − 4 = Θ(n).
Przypadek pesymistyczny: A posortowana odwrotnie⇒ tj = j − 1
⇒ t((n,A)) = 5n − 4 + 3n(n−1)2 = 32 n
2 + 72 n − 4 = Θ(n2).
Funkcja kosztu: T (n) = 32 n
2 + 72 n − 4 = Θ(n2).
37 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Sortowanie przez wstawianie
Peªna funkcja kosztu:
t((n,A)) = (4n − 3) + 2n∑
j=2tj +
n∑j=2
(tj + 1) = (5n − 4) + 3n∑
j=2tj
(zale»y od A !).
Przypadek optymistyczny: A posortowana⇒ tj = 0
⇒ t((n,A)) = 5n − 4 = Θ(n).
Przypadek pesymistyczny: A posortowana odwrotnie⇒ tj = j − 1
⇒ t((n,A)) = 5n − 4 + 3n(n−1)2 = 32 n
2 + 72 n − 4 = Θ(n2).
Funkcja kosztu: T (n) = 32 n
2 + 72 n − 4 = Θ(n2).
37 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Sortowanie przez wstawianie
Peªna funkcja kosztu:
t((n,A)) = (4n − 3) + 2n∑
j=2tj +
n∑j=2
(tj + 1) = (5n − 4) + 3n∑
j=2tj
(zale»y od A !).
Przypadek optymistyczny: A posortowana⇒ tj = 0
⇒ t((n,A)) = 5n − 4 = Θ(n).
Przypadek pesymistyczny: A posortowana odwrotnie⇒ tj = j − 1
⇒ t((n,A)) = 5n − 4 + 3n(n−1)2 = 32 n
2 + 72 n − 4 = Θ(n2).
Funkcja kosztu: T (n) = 32 n
2 + 72 n − 4 = Θ(n2).
37 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Sortowanie przez wstawianie
Problem: czy przypadek pesymistyczny jest bardzo oddalony odprzypadku ±redniego?
Przypadek ±redni : A jest tablic¡ wygenerowan¡ losowo
⇒ w podtablicy A[1..j − 1] ±rednio poªowa elementów jest wi¦kszani» A[j ],
⇒ tj ≈ j2 ,
⇒ t((n,A)) ≈ 5n − 4 + 3n2+n−2
4 = 34 n
2 + 234 n − 11
2 = Θ(n2).
Odpowied¹: nie bardzo!
38 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Sortowanie przez wstawianie
Problem: czy przypadek pesymistyczny jest bardzo oddalony odprzypadku ±redniego?
Przypadek ±redni : A jest tablic¡ wygenerowan¡ losowo
⇒ w podtablicy A[1..j − 1] ±rednio poªowa elementów jest wi¦kszani» A[j ],
⇒ tj ≈ j2 ,
⇒ t((n,A)) ≈ 5n − 4 + 3n2+n−2
4 = 34 n
2 + 234 n − 11
2 = Θ(n2).
Odpowied¹: nie bardzo!
38 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Sortowanie przez wstawianie
Problem: czy przypadek pesymistyczny jest bardzo oddalony odprzypadku ±redniego?
Przypadek ±redni : A jest tablic¡ wygenerowan¡ losowo
⇒ w podtablicy A[1..j − 1] ±rednio poªowa elementów jest wi¦kszani» A[j ],
⇒ tj ≈ j2 ,
⇒ t((n,A)) ≈ 5n − 4 + 3n2+n−2
4 = 34 n
2 + 234 n − 11
2 = Θ(n2).
Odpowied¹: nie bardzo!
38 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Sortowanie przez wstawianie
Problem: czy przypadek pesymistyczny jest bardzo oddalony odprzypadku ±redniego?
Przypadek ±redni : A jest tablic¡ wygenerowan¡ losowo
⇒ w podtablicy A[1..j − 1] ±rednio poªowa elementów jest wi¦kszani» A[j ],
⇒ tj ≈ j2 ,
⇒ t((n,A)) ≈ 5n − 4 + 3n2+n−2
4 = 34 n
2 + 234 n − 11
2 = Θ(n2).
Odpowied¹: nie bardzo!
38 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Sortowanie przez wstawianie
Problem: czy przypadek pesymistyczny jest bardzo oddalony odprzypadku ±redniego?
Przypadek ±redni : A jest tablic¡ wygenerowan¡ losowo
⇒ w podtablicy A[1..j − 1] ±rednio poªowa elementów jest wi¦kszani» A[j ],
⇒ tj ≈ j2 ,
⇒ t((n,A)) ≈ 5n − 4 + 3n2+n−2
4 = 34 n
2 + 234 n − 11
2 = Θ(n2).
Odpowied¹: nie bardzo!
38 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Sortowanie przez wstawianie
Problem: czy przypadek pesymistyczny jest bardzo oddalony odprzypadku ±redniego?
Przypadek ±redni : A jest tablic¡ wygenerowan¡ losowo
⇒ w podtablicy A[1..j − 1] ±rednio poªowa elementów jest wi¦kszani» A[j ],
⇒ tj ≈ j2 ,
⇒ t((n,A)) ≈ 5n − 4 + 3n2+n−2
4 = 34 n
2 + 234 n − 11
2 = Θ(n2).
Odpowied¹: nie bardzo!
38 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Sortowanie
Inne algorytmy sortowania:
sortowanie przez wybieranie Θ(n2),
sortowanie b¡belkowe Θ(n2),
sortowanie szybkie (quicksort) Θ(n2), Θ(n · log n),
sortowanie przez kopcowanie (kopcowe, stogowe, heapsort)Θ(n · log n),
sortowanie przez scalanie (mergesort) Θ(n · log n),
sortowanie przez zliczanie (countingsort) Θ(n) (przy pewnychzaªo»eniach).
39 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Sortowanie
Inne algorytmy sortowania:
sortowanie przez wybieranie Θ(n2),
sortowanie b¡belkowe Θ(n2),
sortowanie szybkie (quicksort) Θ(n2), Θ(n · log n),
sortowanie przez kopcowanie (kopcowe, stogowe, heapsort)Θ(n · log n),
sortowanie przez scalanie (mergesort) Θ(n · log n),
sortowanie przez zliczanie (countingsort) Θ(n) (przy pewnychzaªo»eniach).
39 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Sortowanie
Inne algorytmy sortowania:
sortowanie przez wybieranie Θ(n2),
sortowanie b¡belkowe Θ(n2),
sortowanie szybkie (quicksort) Θ(n2), Θ(n · log n),
sortowanie przez kopcowanie (kopcowe, stogowe, heapsort)Θ(n · log n),
sortowanie przez scalanie (mergesort) Θ(n · log n),
sortowanie przez zliczanie (countingsort) Θ(n) (przy pewnychzaªo»eniach).
39 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Sortowanie
Inne algorytmy sortowania:
sortowanie przez wybieranie Θ(n2),
sortowanie b¡belkowe Θ(n2),
sortowanie szybkie (quicksort) Θ(n2), Θ(n · log n),
sortowanie przez kopcowanie (kopcowe, stogowe, heapsort)Θ(n · log n),
sortowanie przez scalanie (mergesort) Θ(n · log n),
sortowanie przez zliczanie (countingsort) Θ(n) (przy pewnychzaªo»eniach).
39 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Sortowanie
Inne algorytmy sortowania:
sortowanie przez wybieranie Θ(n2),
sortowanie b¡belkowe Θ(n2),
sortowanie szybkie (quicksort) Θ(n2), Θ(n · log n),
sortowanie przez kopcowanie (kopcowe, stogowe, heapsort)Θ(n · log n),
sortowanie przez scalanie (mergesort) Θ(n · log n),
sortowanie przez zliczanie (countingsort) Θ(n) (przy pewnychzaªo»eniach).
39 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Sortowanie
Inne algorytmy sortowania:
sortowanie przez wybieranie Θ(n2),
sortowanie b¡belkowe Θ(n2),
sortowanie szybkie (quicksort) Θ(n2), Θ(n · log n),
sortowanie przez kopcowanie (kopcowe, stogowe, heapsort)Θ(n · log n),
sortowanie przez scalanie (mergesort) Θ(n · log n),
sortowanie przez zliczanie (countingsort) Θ(n) (przy pewnychzaªo»eniach).
39 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Wska¹niki
Przypomnienie.
Wa»niejsze typy danych w Pascalu
proste (jak ShortInt, Byte, Word, Integer, LongInt,Boolean, Char, Real, Double...),
ªa«cuchowe (string),
strukturalne (array, record, set, file,...).
Zmienne tych typów nazywamy zmiennymi statycznymi, gdy»istniej¡ przez caªy czas wykonywania cz¦±ci programu, w której s¡zadeklarowane.
40 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Wska¹niki
Przypomnienie.
Wa»niejsze typy danych w Pascalu
proste (jak ShortInt, Byte, Word, Integer, LongInt,Boolean, Char, Real, Double...),
ªa«cuchowe (string),
strukturalne (array, record, set, file,...).
Zmienne tych typów nazywamy zmiennymi statycznymi, gdy»istniej¡ przez caªy czas wykonywania cz¦±ci programu, w której s¡zadeklarowane.
40 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Wska¹niki
Przypomnienie.
Wa»niejsze typy danych w Pascalu
proste (jak ShortInt, Byte, Word, Integer, LongInt,Boolean, Char, Real, Double...),
ªa«cuchowe (string),
strukturalne (array, record, set, file,...).
Zmienne tych typów nazywamy zmiennymi statycznymi, gdy»istniej¡ przez caªy czas wykonywania cz¦±ci programu, w której s¡zadeklarowane.
40 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Wska¹niki
Przypomnienie.
Wa»niejsze typy danych w Pascalu
proste (jak ShortInt, Byte, Word, Integer, LongInt,Boolean, Char, Real, Double...),
ªa«cuchowe (string),
strukturalne (array, record, set, file,...).
Zmienne tych typów nazywamy zmiennymi statycznymi, gdy»istniej¡ przez caªy czas wykonywania cz¦±ci programu, w której s¡zadeklarowane.
40 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Wska¹niki
Przypomnienie.
Wa»niejsze typy danych w Pascalu
proste (jak ShortInt, Byte, Word, Integer, LongInt,Boolean, Char, Real, Double...),
ªa«cuchowe (string),
strukturalne (array, record, set, file,...).
Zmienne tych typów nazywamy zmiennymi statycznymi, gdy»istniej¡ przez caªy czas wykonywania cz¦±ci programu, w której s¡zadeklarowane.
40 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Wska¹niki
Przypomnienie.Rekord = statyczna struktura danych której skªadowe (pola) mog¡nale»e¢ do ró»nych typów; liczba pól jest ustalona.
Denicja typu rekordowego:
type identykator-typu = record
lista-deklaracji-pólend;
Ka»da z deklaracji pól ma posta¢
lista-nazw-pól : opis-typu;
41 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Wska¹niki
Przypomnienie.Rekord = statyczna struktura danych której skªadowe (pola) mog¡nale»e¢ do ró»nych typów; liczba pól jest ustalona.
Denicja typu rekordowego:
type identykator-typu = record
lista-deklaracji-pólend;
Ka»da z deklaracji pól ma posta¢
lista-nazw-pól : opis-typu;
41 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Wska¹niki
Przykªad.
type dane = record
wiek : Integer;
nazwisko : string[30]end;
Mo»emy zadeklarowa¢ zmienn¡ zdeniowanego typu dane:
var mojedane : dane;
Do pól zmiennej rekordowej odwoªujemy si¦ za pomoc¡ kropki:
mojedane.wiek := 100;
42 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Wska¹niki
Przykªad.
type dane = record
wiek : Integer;
nazwisko : string[30]end;
Mo»emy zadeklarowa¢ zmienn¡ zdeniowanego typu dane:
var mojedane : dane;
Do pól zmiennej rekordowej odwoªujemy si¦ za pomoc¡ kropki:
mojedane.wiek := 100;
42 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Wska¹niki
Przykªad.
type dane = record
wiek : Integer;
nazwisko : string[30]end;
Mo»emy zadeklarowa¢ zmienn¡ zdeniowanego typu dane:
var mojedane : dane;
Do pól zmiennej rekordowej odwoªujemy si¦ za pomoc¡ kropki:
mojedane.wiek := 100;
42 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Wska¹niki
W Pascalu mamy te» zmienne dynamiczne = reprezentuj¡ceobiekty, dla których pami¦¢ jest przydzielana i zwalniana naokre±lone »¡danie (w trakcie wykonania programu).
Zmienne dynamiczne nie posiadaj¡ identykatorów,
odwoªanie do nich za pomoc¡ wska¹nika,
wska¹nik = adres pami¦ci zmiennej dynamicznej = element typuwska¹nikowego,
zastosowanie zmiennych dynamicznych wymaga zdeniowaniaodpowiednich typów wska¹nikowych.
43 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Wska¹niki
W Pascalu mamy te» zmienne dynamiczne = reprezentuj¡ceobiekty, dla których pami¦¢ jest przydzielana i zwalniana naokre±lone »¡danie (w trakcie wykonania programu).
Zmienne dynamiczne nie posiadaj¡ identykatorów,
odwoªanie do nich za pomoc¡ wska¹nika,
wska¹nik = adres pami¦ci zmiennej dynamicznej = element typuwska¹nikowego,
zastosowanie zmiennych dynamicznych wymaga zdeniowaniaodpowiednich typów wska¹nikowych.
43 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Wska¹niki
W Pascalu mamy te» zmienne dynamiczne = reprezentuj¡ceobiekty, dla których pami¦¢ jest przydzielana i zwalniana naokre±lone »¡danie (w trakcie wykonania programu).
Zmienne dynamiczne nie posiadaj¡ identykatorów,
odwoªanie do nich za pomoc¡ wska¹nika,
wska¹nik = adres pami¦ci zmiennej dynamicznej = element typuwska¹nikowego,
zastosowanie zmiennych dynamicznych wymaga zdeniowaniaodpowiednich typów wska¹nikowych.
43 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Wska¹niki
W Pascalu mamy te» zmienne dynamiczne = reprezentuj¡ceobiekty, dla których pami¦¢ jest przydzielana i zwalniana naokre±lone »¡danie (w trakcie wykonania programu).
Zmienne dynamiczne nie posiadaj¡ identykatorów,
odwoªanie do nich za pomoc¡ wska¹nika,
wska¹nik = adres pami¦ci zmiennej dynamicznej = element typuwska¹nikowego,
zastosowanie zmiennych dynamicznych wymaga zdeniowaniaodpowiednich typów wska¹nikowych.
43 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Wska¹niki
W Pascalu mamy te» zmienne dynamiczne = reprezentuj¡ceobiekty, dla których pami¦¢ jest przydzielana i zwalniana naokre±lone »¡danie (w trakcie wykonania programu).
Zmienne dynamiczne nie posiadaj¡ identykatorów,
odwoªanie do nich za pomoc¡ wska¹nika,
wska¹nik = adres pami¦ci zmiennej dynamicznej = element typuwska¹nikowego,
zastosowanie zmiennych dynamicznych wymaga zdeniowaniaodpowiednich typów wska¹nikowych.
43 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Wska¹niki
Denicja typu wska¹nikowego:
type identykator-typu = ^ identykator-typu-bazowego;
identykator-typu-bazowego = typ, którego dane b¦d¡ wskazywaneprzez zmienne typu identykator-typu.
identykator-typu-bazowego mo»e, ale nie musi by¢ wcze±niejokre±lony,
je»eli nie jest wcze±niej okre±lony, powinien zosta¢ okre±lonyw tej samej klauzuli type.
Uwaga. Sªowo kluczowe nil = staªa typu wska¹nikowego nieokre±laj¡ca »adnego adresu (inaczej: okre±laj¡ca adres pusty).
44 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Wska¹niki
Denicja typu wska¹nikowego:
type identykator-typu = ^ identykator-typu-bazowego;
identykator-typu-bazowego = typ, którego dane b¦d¡ wskazywaneprzez zmienne typu identykator-typu.
identykator-typu-bazowego mo»e, ale nie musi by¢ wcze±niejokre±lony,
je»eli nie jest wcze±niej okre±lony, powinien zosta¢ okre±lonyw tej samej klauzuli type.
Uwaga. Sªowo kluczowe nil = staªa typu wska¹nikowego nieokre±laj¡ca »adnego adresu (inaczej: okre±laj¡ca adres pusty).
44 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Wska¹niki
Denicja typu wska¹nikowego:
type identykator-typu = ^ identykator-typu-bazowego;
identykator-typu-bazowego = typ, którego dane b¦d¡ wskazywaneprzez zmienne typu identykator-typu.
identykator-typu-bazowego mo»e, ale nie musi by¢ wcze±niejokre±lony,
je»eli nie jest wcze±niej okre±lony, powinien zosta¢ okre±lonyw tej samej klauzuli type.
Uwaga. Sªowo kluczowe nil = staªa typu wska¹nikowego nieokre±laj¡ca »adnego adresu (inaczej: okre±laj¡ca adres pusty).
44 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Wska¹niki
Denicja typu wska¹nikowego:
type identykator-typu = ^ identykator-typu-bazowego;
identykator-typu-bazowego = typ, którego dane b¦d¡ wskazywaneprzez zmienne typu identykator-typu.
identykator-typu-bazowego mo»e, ale nie musi by¢ wcze±niejokre±lony,
je»eli nie jest wcze±niej okre±lony, powinien zosta¢ okre±lonyw tej samej klauzuli type.
Uwaga. Sªowo kluczowe nil = staªa typu wska¹nikowego nieokre±laj¡ca »adnego adresu (inaczej: okre±laj¡ca adres pusty).
44 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Wska¹nikiPrzykªad.
type typ_wskaz = ^moj_typ;moj_typ = record
liczba : Integer;
napis : string[30]end;
Mo»emy zadeklarowa¢ zmienn¡ zdeniowanego typu:
var wskaz : typ_wskaz;
Zmiennej wska¹nikowej wskaz b¦d¡ mogªy by¢ w programieprzypisywane adresy pami¦ci danych typu moj_typ.
U»ycie: wskaz^ = zmienna wskazywana przez zmienn¡wska¹nikow¡ wskaz = rekord typu moj_typ (o adresieokre±lonym przez wskaz).
45 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Wska¹nikiPrzykªad.
type typ_wskaz = ^moj_typ;moj_typ = record
liczba : Integer;
napis : string[30]end;
Mo»emy zadeklarowa¢ zmienn¡ zdeniowanego typu:
var wskaz : typ_wskaz;
Zmiennej wska¹nikowej wskaz b¦d¡ mogªy by¢ w programieprzypisywane adresy pami¦ci danych typu moj_typ.
U»ycie: wskaz^ = zmienna wskazywana przez zmienn¡wska¹nikow¡ wskaz = rekord typu moj_typ (o adresieokre±lonym przez wskaz).
45 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Wska¹nikiPrzykªad.
type typ_wskaz = ^moj_typ;moj_typ = record
liczba : Integer;
napis : string[30]end;
Mo»emy zadeklarowa¢ zmienn¡ zdeniowanego typu:
var wskaz : typ_wskaz;
Zmiennej wska¹nikowej wskaz b¦d¡ mogªy by¢ w programieprzypisywane adresy pami¦ci danych typu moj_typ.
U»ycie: wskaz^ = zmienna wskazywana przez zmienn¡wska¹nikow¡ wskaz = rekord typu moj_typ (o adresieokre±lonym przez wskaz).
45 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Wska¹nikiDwa sposoby deklaracji zmiennej wska¹nikowej.
Sposób 1.
type typ_wskaz = ^moj_typ;moj_typ = record
liczba : Integer;
napis : string[30]end;
var wskaz : typ_wskaz;
Sposób 2.
type moj_typ = record
liczba : Integer;
napis : string[30]end;
var wskaz : ^moj_typ;
Uwaga. Zmienna wska¹nikowa ma na pocz¡tku warto±¢ nil.
46 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Wska¹nikiDwa sposoby deklaracji zmiennej wska¹nikowej.
Sposób 1.
type typ_wskaz = ^moj_typ;moj_typ = record
liczba : Integer;
napis : string[30]end;
var wskaz : typ_wskaz;
Sposób 2.
type moj_typ = record
liczba : Integer;
napis : string[30]end;
var wskaz : ^moj_typ;
Uwaga. Zmienna wska¹nikowa ma na pocz¡tku warto±¢ nil.
46 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Wska¹nikiDwa sposoby deklaracji zmiennej wska¹nikowej.
Sposób 1.
type typ_wskaz = ^moj_typ;moj_typ = record
liczba : Integer;
napis : string[30]end;
var wskaz : typ_wskaz;
Sposób 2.
type moj_typ = record
liczba : Integer;
napis : string[30]end;
var wskaz : ^moj_typ;
Uwaga. Zmienna wska¹nikowa ma na pocz¡tku warto±¢ nil.
46 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Dynamiczny przydziaª pami¦ci
Tworzenie zmiennej dynamicznej (zmiennej wskazywanej)i ustalenie zmiennej wska¹nikowej wskazuj¡cej na ni¡:
New(zmienna-wskaznikowa);
utworzonej zmiennej dynamicznej zostanie przydzielony blokpami¦ci, którego rozmiar = rozmiar typu, z którym zwi¡zana jestzmienna-wska¹nikowa,
je»eli brakuje pami¦ci, wyst¡pi bª¡d,
przydzielenie bloku o konkretnym rozmiarze:
GetMem(zmienna-wskaznikowa,rozmiar);
dla zmiennej dynamicznej typu obiektowego, wywoªanie:
New(zmienna-wskaznikowa, konstruktor);
47 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Dynamiczny przydziaª pami¦ci
Tworzenie zmiennej dynamicznej (zmiennej wskazywanej)i ustalenie zmiennej wska¹nikowej wskazuj¡cej na ni¡:
New(zmienna-wskaznikowa);
utworzonej zmiennej dynamicznej zostanie przydzielony blokpami¦ci, którego rozmiar = rozmiar typu, z którym zwi¡zana jestzmienna-wska¹nikowa,
je»eli brakuje pami¦ci, wyst¡pi bª¡d,
przydzielenie bloku o konkretnym rozmiarze:
GetMem(zmienna-wskaznikowa,rozmiar);
dla zmiennej dynamicznej typu obiektowego, wywoªanie:
New(zmienna-wskaznikowa, konstruktor);
47 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Dynamiczny przydziaª pami¦ci
Tworzenie zmiennej dynamicznej (zmiennej wskazywanej)i ustalenie zmiennej wska¹nikowej wskazuj¡cej na ni¡:
New(zmienna-wskaznikowa);
utworzonej zmiennej dynamicznej zostanie przydzielony blokpami¦ci, którego rozmiar = rozmiar typu, z którym zwi¡zana jestzmienna-wska¹nikowa,
je»eli brakuje pami¦ci, wyst¡pi bª¡d,
przydzielenie bloku o konkretnym rozmiarze:
GetMem(zmienna-wskaznikowa,rozmiar);
dla zmiennej dynamicznej typu obiektowego, wywoªanie:
New(zmienna-wskaznikowa, konstruktor);
47 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Dynamiczny przydziaª pami¦ci
Tworzenie zmiennej dynamicznej (zmiennej wskazywanej)i ustalenie zmiennej wska¹nikowej wskazuj¡cej na ni¡:
New(zmienna-wskaznikowa);
utworzonej zmiennej dynamicznej zostanie przydzielony blokpami¦ci, którego rozmiar = rozmiar typu, z którym zwi¡zana jestzmienna-wska¹nikowa,
je»eli brakuje pami¦ci, wyst¡pi bª¡d,
przydzielenie bloku o konkretnym rozmiarze:
GetMem(zmienna-wskaznikowa,rozmiar);
dla zmiennej dynamicznej typu obiektowego, wywoªanie:
New(zmienna-wskaznikowa, konstruktor);
47 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Dynamiczny przydziaª pami¦ci
Tworzenie zmiennej dynamicznej (zmiennej wskazywanej)i ustalenie zmiennej wska¹nikowej wskazuj¡cej na ni¡:
New(zmienna-wskaznikowa);
utworzonej zmiennej dynamicznej zostanie przydzielony blokpami¦ci, którego rozmiar = rozmiar typu, z którym zwi¡zana jestzmienna-wska¹nikowa,
je»eli brakuje pami¦ci, wyst¡pi bª¡d,
przydzielenie bloku o konkretnym rozmiarze:
GetMem(zmienna-wskaznikowa,rozmiar);
dla zmiennej dynamicznej typu obiektowego, wywoªanie:
New(zmienna-wskaznikowa, konstruktor);
47 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Dynamiczny przydziaª pami¦ci
Przykªad.
1. type moj_typ = record
2. liczba : Integer;
3. napis : string[30]4. end;
5. var wskaz, wskaz2 : ^moj_typ;
6. begin
7. New(wskaz);8. wskaz^.liczba := 10;9. wskaz^.napis := 'Ala ma kota';10. wskaz2 := wskaz;11. wskaz2^.liczba := 20;12. New(wskaz);13. New(wskaz2);14. end
48 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Dynamiczny przydziaª pami¦ci
Usuni¦cie zmiennej dynamicznej wskazywanej przez zmienn¡wska¹nikow¡:
Dispose(zmienna-wskaznikowa);
zostaje uwolniona zajmowana przez ni¡ pami¦¢,
zmienna-wskaznikowa powinna by¢ uprzednio utworzona przypomocy New,
usuni¦cie bloku o konkretnym rozmiarze:
FreeMem(zmienna-wskaznikowa,rozmiar);
usuwanie dla zmiennej dynamicznej typu obiektowego,wywoªanie:
Dispose(zmienna-wskaznikowa, destruktor);
49 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Dynamiczny przydziaª pami¦ci
Usuni¦cie zmiennej dynamicznej wskazywanej przez zmienn¡wska¹nikow¡:
Dispose(zmienna-wskaznikowa);
zostaje uwolniona zajmowana przez ni¡ pami¦¢,
zmienna-wskaznikowa powinna by¢ uprzednio utworzona przypomocy New,
usuni¦cie bloku o konkretnym rozmiarze:
FreeMem(zmienna-wskaznikowa,rozmiar);
usuwanie dla zmiennej dynamicznej typu obiektowego,wywoªanie:
Dispose(zmienna-wskaznikowa, destruktor);
49 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Dynamiczny przydziaª pami¦ci
Usuni¦cie zmiennej dynamicznej wskazywanej przez zmienn¡wska¹nikow¡:
Dispose(zmienna-wskaznikowa);
zostaje uwolniona zajmowana przez ni¡ pami¦¢,
zmienna-wskaznikowa powinna by¢ uprzednio utworzona przypomocy New,
usuni¦cie bloku o konkretnym rozmiarze:
FreeMem(zmienna-wskaznikowa,rozmiar);
usuwanie dla zmiennej dynamicznej typu obiektowego,wywoªanie:
Dispose(zmienna-wskaznikowa, destruktor);
49 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Dynamiczny przydziaª pami¦ci
Usuni¦cie zmiennej dynamicznej wskazywanej przez zmienn¡wska¹nikow¡:
Dispose(zmienna-wskaznikowa);
zostaje uwolniona zajmowana przez ni¡ pami¦¢,
zmienna-wskaznikowa powinna by¢ uprzednio utworzona przypomocy New,
usuni¦cie bloku o konkretnym rozmiarze:
FreeMem(zmienna-wskaznikowa,rozmiar);
usuwanie dla zmiennej dynamicznej typu obiektowego,wywoªanie:
Dispose(zmienna-wskaznikowa, destruktor);
49 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Dynamiczny przydziaª pami¦ci
Usuni¦cie zmiennej dynamicznej wskazywanej przez zmienn¡wska¹nikow¡:
Dispose(zmienna-wskaznikowa);
zostaje uwolniona zajmowana przez ni¡ pami¦¢,
zmienna-wskaznikowa powinna by¢ uprzednio utworzona przypomocy New,
usuni¦cie bloku o konkretnym rozmiarze:
FreeMem(zmienna-wskaznikowa,rozmiar);
usuwanie dla zmiennej dynamicznej typu obiektowego,wywoªanie:
Dispose(zmienna-wskaznikowa, destruktor);
49 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Elementarne struktury danych
Najprostsza struktura danych (statyczna) tablica. Staªa dªugo±¢!
Dynamiczne struktury danych zbiory sªu»¡ce doprzechowywania danych w programie, które mog¡ si¦ powi¦ksza¢,zmniejsza¢, zmienia¢ w inny sposób w trakcie wykonania programu.
programista nie musi deklarowa¢ rozmiaru takiego zbioru,
realizowane przy pomocy wska¹ników,
elementy zbioru reprezentowane przez obiekt (rekord), któregopola mo»na odczyta¢ maj¡c wska¹nik do tego obiektu,
jedno z pól obiektów wyró»nione jako jego klucz,
obiekt mo»e zawiera¢ dodatkowe dane oprócz klucza,
obiekt mo»e zawiera¢ wska¹niki do innych obiektów,
klucze mog¡ by¢ elementami zbioru liniowo uporz¡dkowanego,wtedy jest sens pyta¢ o element najmniejszy/najwi¦kszy.
50 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Elementarne struktury danych
Najprostsza struktura danych (statyczna) tablica. Staªa dªugo±¢!
Dynamiczne struktury danych zbiory sªu»¡ce doprzechowywania danych w programie, które mog¡ si¦ powi¦ksza¢,zmniejsza¢, zmienia¢ w inny sposób w trakcie wykonania programu.
programista nie musi deklarowa¢ rozmiaru takiego zbioru,
realizowane przy pomocy wska¹ników,
elementy zbioru reprezentowane przez obiekt (rekord), któregopola mo»na odczyta¢ maj¡c wska¹nik do tego obiektu,
jedno z pól obiektów wyró»nione jako jego klucz,
obiekt mo»e zawiera¢ dodatkowe dane oprócz klucza,
obiekt mo»e zawiera¢ wska¹niki do innych obiektów,
klucze mog¡ by¢ elementami zbioru liniowo uporz¡dkowanego,wtedy jest sens pyta¢ o element najmniejszy/najwi¦kszy.
50 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Elementarne struktury danych
Najprostsza struktura danych (statyczna) tablica. Staªa dªugo±¢!
Dynamiczne struktury danych zbiory sªu»¡ce doprzechowywania danych w programie, które mog¡ si¦ powi¦ksza¢,zmniejsza¢, zmienia¢ w inny sposób w trakcie wykonania programu.
programista nie musi deklarowa¢ rozmiaru takiego zbioru,
realizowane przy pomocy wska¹ników,
elementy zbioru reprezentowane przez obiekt (rekord), któregopola mo»na odczyta¢ maj¡c wska¹nik do tego obiektu,
jedno z pól obiektów wyró»nione jako jego klucz,
obiekt mo»e zawiera¢ dodatkowe dane oprócz klucza,
obiekt mo»e zawiera¢ wska¹niki do innych obiektów,
klucze mog¡ by¢ elementami zbioru liniowo uporz¡dkowanego,wtedy jest sens pyta¢ o element najmniejszy/najwi¦kszy.
50 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Elementarne struktury danych
Najprostsza struktura danych (statyczna) tablica. Staªa dªugo±¢!
Dynamiczne struktury danych zbiory sªu»¡ce doprzechowywania danych w programie, które mog¡ si¦ powi¦ksza¢,zmniejsza¢, zmienia¢ w inny sposób w trakcie wykonania programu.
programista nie musi deklarowa¢ rozmiaru takiego zbioru,
realizowane przy pomocy wska¹ników,
elementy zbioru reprezentowane przez obiekt (rekord), któregopola mo»na odczyta¢ maj¡c wska¹nik do tego obiektu,
jedno z pól obiektów wyró»nione jako jego klucz,
obiekt mo»e zawiera¢ dodatkowe dane oprócz klucza,
obiekt mo»e zawiera¢ wska¹niki do innych obiektów,
klucze mog¡ by¢ elementami zbioru liniowo uporz¡dkowanego,wtedy jest sens pyta¢ o element najmniejszy/najwi¦kszy.
50 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Elementarne struktury danych
Najprostsza struktura danych (statyczna) tablica. Staªa dªugo±¢!
Dynamiczne struktury danych zbiory sªu»¡ce doprzechowywania danych w programie, które mog¡ si¦ powi¦ksza¢,zmniejsza¢, zmienia¢ w inny sposób w trakcie wykonania programu.
programista nie musi deklarowa¢ rozmiaru takiego zbioru,
realizowane przy pomocy wska¹ników,
elementy zbioru reprezentowane przez obiekt (rekord), któregopola mo»na odczyta¢ maj¡c wska¹nik do tego obiektu,
jedno z pól obiektów wyró»nione jako jego klucz,
obiekt mo»e zawiera¢ dodatkowe dane oprócz klucza,
obiekt mo»e zawiera¢ wska¹niki do innych obiektów,
klucze mog¡ by¢ elementami zbioru liniowo uporz¡dkowanego,wtedy jest sens pyta¢ o element najmniejszy/najwi¦kszy.
50 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Elementarne struktury danych
Najprostsza struktura danych (statyczna) tablica. Staªa dªugo±¢!
Dynamiczne struktury danych zbiory sªu»¡ce doprzechowywania danych w programie, które mog¡ si¦ powi¦ksza¢,zmniejsza¢, zmienia¢ w inny sposób w trakcie wykonania programu.
programista nie musi deklarowa¢ rozmiaru takiego zbioru,
realizowane przy pomocy wska¹ników,
elementy zbioru reprezentowane przez obiekt (rekord), któregopola mo»na odczyta¢ maj¡c wska¹nik do tego obiektu,
jedno z pól obiektów wyró»nione jako jego klucz,
obiekt mo»e zawiera¢ dodatkowe dane oprócz klucza,
obiekt mo»e zawiera¢ wska¹niki do innych obiektów,
klucze mog¡ by¢ elementami zbioru liniowo uporz¡dkowanego,wtedy jest sens pyta¢ o element najmniejszy/najwi¦kszy.
50 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Elementarne struktury danych
Najprostsza struktura danych (statyczna) tablica. Staªa dªugo±¢!
Dynamiczne struktury danych zbiory sªu»¡ce doprzechowywania danych w programie, które mog¡ si¦ powi¦ksza¢,zmniejsza¢, zmienia¢ w inny sposób w trakcie wykonania programu.
programista nie musi deklarowa¢ rozmiaru takiego zbioru,
realizowane przy pomocy wska¹ników,
elementy zbioru reprezentowane przez obiekt (rekord), któregopola mo»na odczyta¢ maj¡c wska¹nik do tego obiektu,
jedno z pól obiektów wyró»nione jako jego klucz,
obiekt mo»e zawiera¢ dodatkowe dane oprócz klucza,
obiekt mo»e zawiera¢ wska¹niki do innych obiektów,
klucze mog¡ by¢ elementami zbioru liniowo uporz¡dkowanego,wtedy jest sens pyta¢ o element najmniejszy/najwi¦kszy.
50 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Elementarne struktury danych
Najprostsza struktura danych (statyczna) tablica. Staªa dªugo±¢!
Dynamiczne struktury danych zbiory sªu»¡ce doprzechowywania danych w programie, które mog¡ si¦ powi¦ksza¢,zmniejsza¢, zmienia¢ w inny sposób w trakcie wykonania programu.
programista nie musi deklarowa¢ rozmiaru takiego zbioru,
realizowane przy pomocy wska¹ników,
elementy zbioru reprezentowane przez obiekt (rekord), któregopola mo»na odczyta¢ maj¡c wska¹nik do tego obiektu,
jedno z pól obiektów wyró»nione jako jego klucz,
obiekt mo»e zawiera¢ dodatkowe dane oprócz klucza,
obiekt mo»e zawiera¢ wska¹niki do innych obiektów,
klucze mog¡ by¢ elementami zbioru liniowo uporz¡dkowanego,wtedy jest sens pyta¢ o element najmniejszy/najwi¦kszy.
50 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Elementarne struktury danych
Najprostsza struktura danych (statyczna) tablica. Staªa dªugo±¢!
Dynamiczne struktury danych zbiory sªu»¡ce doprzechowywania danych w programie, które mog¡ si¦ powi¦ksza¢,zmniejsza¢, zmienia¢ w inny sposób w trakcie wykonania programu.
programista nie musi deklarowa¢ rozmiaru takiego zbioru,
realizowane przy pomocy wska¹ników,
elementy zbioru reprezentowane przez obiekt (rekord), któregopola mo»na odczyta¢ maj¡c wska¹nik do tego obiektu,
jedno z pól obiektów wyró»nione jako jego klucz,
obiekt mo»e zawiera¢ dodatkowe dane oprócz klucza,
obiekt mo»e zawiera¢ wska¹niki do innych obiektów,
klucze mog¡ by¢ elementami zbioru liniowo uporz¡dkowanego,wtedy jest sens pyta¢ o element najmniejszy/najwi¦kszy.
50 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Elementarne struktury danych
Operacje na zbiorach dynamicznych:
zapytania,
operacje modykuj¡ce.
Uwagi.czas wykonania operacji mo»e si¦ ró»ni¢ dla poszczególnychstruktur danych,
czas wykonania mierzy si¦ zwykle jako funkcj¦ rozmiaru zbioru,
wybór odpowiedniej struktury danych uzale»niony odkonkretnych zastosowa«,
wybór odpowiedniej struktury danych mo»e istotnie wpªyn¡¢ nazªo»ono±¢ algorytmu!
51 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Elementarne struktury danych
Operacje na zbiorach dynamicznych:
zapytania,
operacje modykuj¡ce.
Uwagi.czas wykonania operacji mo»e si¦ ró»ni¢ dla poszczególnychstruktur danych,
czas wykonania mierzy si¦ zwykle jako funkcj¦ rozmiaru zbioru,
wybór odpowiedniej struktury danych uzale»niony odkonkretnych zastosowa«,
wybór odpowiedniej struktury danych mo»e istotnie wpªyn¡¢ nazªo»ono±¢ algorytmu!
51 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Elementarne struktury danych
Operacje na zbiorach dynamicznych:
zapytania,
operacje modykuj¡ce.
Uwagi.czas wykonania operacji mo»e si¦ ró»ni¢ dla poszczególnychstruktur danych,
czas wykonania mierzy si¦ zwykle jako funkcj¦ rozmiaru zbioru,
wybór odpowiedniej struktury danych uzale»niony odkonkretnych zastosowa«,
wybór odpowiedniej struktury danych mo»e istotnie wpªyn¡¢ nazªo»ono±¢ algorytmu!
51 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Elementarne struktury danych
Operacje na zbiorach dynamicznych:
zapytania,
operacje modykuj¡ce.
Uwagi.czas wykonania operacji mo»e si¦ ró»ni¢ dla poszczególnychstruktur danych,
czas wykonania mierzy si¦ zwykle jako funkcj¦ rozmiaru zbioru,
wybór odpowiedniej struktury danych uzale»niony odkonkretnych zastosowa«,
wybór odpowiedniej struktury danych mo»e istotnie wpªyn¡¢ nazªo»ono±¢ algorytmu!
51 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Elementarne struktury danych
Operacje na zbiorach dynamicznych:
zapytania,
operacje modykuj¡ce.
Uwagi.czas wykonania operacji mo»e si¦ ró»ni¢ dla poszczególnychstruktur danych,
czas wykonania mierzy si¦ zwykle jako funkcj¦ rozmiaru zbioru,
wybór odpowiedniej struktury danych uzale»niony odkonkretnych zastosowa«,
wybór odpowiedniej struktury danych mo»e istotnie wpªyn¡¢ nazªo»ono±¢ algorytmu!
51 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Elementarne struktury danych
Najwa»niejsze operacje:1 Search(S , k) zapytanie; dla zbioru S i klucza k zwraca
wska¹nik do elementu w S o kluczu k,
2 Insert(S , x) modykuj¡ca; do zbioru S dodaje elementwskazywany przez x ,
3 Delete(S , x) modykuj¡ca; ze zbioru S usuwa elementwskazywany przez x ,
4 Min(S) zapytanie dla zbioru z liniowo uporz¡dkowanymikluczami; zwraca wska¹nik do elementu o najmniejszym kluczu,
5 Max(S) zapytanie dla zbioru z liniowo uporz¡dkowanymikluczami; zwraca wska¹nik do elementu o najwi¦kszym kluczu.
Wiele innych operacji specycznych dla konkretnej strukturydanych.
52 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Elementarne struktury danych
Najwa»niejsze operacje:1 Search(S , k) zapytanie; dla zbioru S i klucza k zwraca
wska¹nik do elementu w S o kluczu k,
2 Insert(S , x) modykuj¡ca; do zbioru S dodaje elementwskazywany przez x ,
3 Delete(S , x) modykuj¡ca; ze zbioru S usuwa elementwskazywany przez x ,
4 Min(S) zapytanie dla zbioru z liniowo uporz¡dkowanymikluczami; zwraca wska¹nik do elementu o najmniejszym kluczu,
5 Max(S) zapytanie dla zbioru z liniowo uporz¡dkowanymikluczami; zwraca wska¹nik do elementu o najwi¦kszym kluczu.
Wiele innych operacji specycznych dla konkretnej strukturydanych.
52 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Elementarne struktury danych
Najwa»niejsze operacje:1 Search(S , k) zapytanie; dla zbioru S i klucza k zwraca
wska¹nik do elementu w S o kluczu k,
2 Insert(S , x) modykuj¡ca; do zbioru S dodaje elementwskazywany przez x ,
3 Delete(S , x) modykuj¡ca; ze zbioru S usuwa elementwskazywany przez x ,
4 Min(S) zapytanie dla zbioru z liniowo uporz¡dkowanymikluczami; zwraca wska¹nik do elementu o najmniejszym kluczu,
5 Max(S) zapytanie dla zbioru z liniowo uporz¡dkowanymikluczami; zwraca wska¹nik do elementu o najwi¦kszym kluczu.
Wiele innych operacji specycznych dla konkretnej strukturydanych.
52 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Elementarne struktury danych
Najwa»niejsze operacje:1 Search(S , k) zapytanie; dla zbioru S i klucza k zwraca
wska¹nik do elementu w S o kluczu k,
2 Insert(S , x) modykuj¡ca; do zbioru S dodaje elementwskazywany przez x ,
3 Delete(S , x) modykuj¡ca; ze zbioru S usuwa elementwskazywany przez x ,
4 Min(S) zapytanie dla zbioru z liniowo uporz¡dkowanymikluczami; zwraca wska¹nik do elementu o najmniejszym kluczu,
5 Max(S) zapytanie dla zbioru z liniowo uporz¡dkowanymikluczami; zwraca wska¹nik do elementu o najwi¦kszym kluczu.
Wiele innych operacji specycznych dla konkretnej strukturydanych.
52 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Elementarne struktury danych
Najwa»niejsze operacje:1 Search(S , k) zapytanie; dla zbioru S i klucza k zwraca
wska¹nik do elementu w S o kluczu k,
2 Insert(S , x) modykuj¡ca; do zbioru S dodaje elementwskazywany przez x ,
3 Delete(S , x) modykuj¡ca; ze zbioru S usuwa elementwskazywany przez x ,
4 Min(S) zapytanie dla zbioru z liniowo uporz¡dkowanymikluczami; zwraca wska¹nik do elementu o najmniejszym kluczu,
5 Max(S) zapytanie dla zbioru z liniowo uporz¡dkowanymikluczami; zwraca wska¹nik do elementu o najwi¦kszym kluczu.
Wiele innych operacji specycznych dla konkretnej strukturydanych.
52 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Elementarne struktury danych
Najwa»niejsze operacje:1 Search(S , k) zapytanie; dla zbioru S i klucza k zwraca
wska¹nik do elementu w S o kluczu k,
2 Insert(S , x) modykuj¡ca; do zbioru S dodaje elementwskazywany przez x ,
3 Delete(S , x) modykuj¡ca; ze zbioru S usuwa elementwskazywany przez x ,
4 Min(S) zapytanie dla zbioru z liniowo uporz¡dkowanymikluczami; zwraca wska¹nik do elementu o najmniejszym kluczu,
5 Max(S) zapytanie dla zbioru z liniowo uporz¡dkowanymikluczami; zwraca wska¹nik do elementu o najwi¦kszym kluczu.
Wiele innych operacji specycznych dla konkretnej strukturydanych.
52 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Stos
Stos (stack) dynamiczna struktura danych S , w której w danejchwili dost¦p mamy tylko do jednego elementu (dodanegoostatnio) zwanego wierzchoªkiem stosu (head).
Operacje:1 Push(S , x) dodanie elementu x na stos S ; dodany element
staje si¦ nowym wierzchoªkiem stosu,
2 Pop(S) usuni¦cie (i zwrócenie) ze stosu S wierzchoªka stosu;nowym wierzchoªkiem stosu staje si¦ element dodany krokwcze±niej.
Strategia LIFO = last-in, rst-out.
53 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Stos
Stos (stack) dynamiczna struktura danych S , w której w danejchwili dost¦p mamy tylko do jednego elementu (dodanegoostatnio) zwanego wierzchoªkiem stosu (head).
Operacje:1 Push(S , x) dodanie elementu x na stos S ; dodany element
staje si¦ nowym wierzchoªkiem stosu,
2 Pop(S) usuni¦cie (i zwrócenie) ze stosu S wierzchoªka stosu;nowym wierzchoªkiem stosu staje si¦ element dodany krokwcze±niej.
Strategia LIFO = last-in, rst-out.
53 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Stos
Stos (stack) dynamiczna struktura danych S , w której w danejchwili dost¦p mamy tylko do jednego elementu (dodanegoostatnio) zwanego wierzchoªkiem stosu (head).
Operacje:1 Push(S , x) dodanie elementu x na stos S ; dodany element
staje si¦ nowym wierzchoªkiem stosu,
2 Pop(S) usuni¦cie (i zwrócenie) ze stosu S wierzchoªka stosu;nowym wierzchoªkiem stosu staje si¦ element dodany krokwcze±niej.
Strategia LIFO = last-in, rst-out.
53 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Stos
Stos (stack) dynamiczna struktura danych S , w której w danejchwili dost¦p mamy tylko do jednego elementu (dodanegoostatnio) zwanego wierzchoªkiem stosu (head).
Operacje:1 Push(S , x) dodanie elementu x na stos S ; dodany element
staje si¦ nowym wierzchoªkiem stosu,
2 Pop(S) usuni¦cie (i zwrócenie) ze stosu S wierzchoªka stosu;nowym wierzchoªkiem stosu staje si¦ element dodany krokwcze±niej.
Strategia LIFO = last-in, rst-out.
53 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Stos
type wskstos = ^elstos;elstos = record
dane : typ-danych;
nast :wskstosend;
1. procedure Push(nowedane : typ-danych; var wierzch :wskstos);2. var punkt :wskstos;3. begin
4. punkt := wierzch;5. New(wierzch);6. wierzch^.dane := nowedane;7. wierzch^.nast := punkt;8. end;
54 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Stos
type wskstos = ^elstos;elstos = record
dane : typ-danych;
nast :wskstosend;
1. procedure Push(nowedane : typ-danych; var wierzch :wskstos);2. var punkt :wskstos;3. begin
4. punkt := wierzch;5. New(wierzch);6. wierzch^.dane := nowedane;7. wierzch^.nast := punkt;8. end;
54 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Stos
type wskstos = ^elstos;elstos = record
dane : typ-danych;
nast :wskstosend;
1. function Pop(var wierzch :wskstos) : typ-danych;
2. var punkt :wskstos;3. begin
4. if wierzch <> nil then
5. begin
6. Pop := wierzch^.dane;7. punkt := wierzch^.nast;8. Dispose(wierzch);9. wierzch := punkt10. end
11. else stos pusty! ....12. end;
55 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Kolejka
Kolejka (queue) dynamiczna struktura danych Q w formie ci¡gu,do której mo»na doª¡czy¢ skªadnik tylko w jednym ko«cu (nako«cu kolejki tail), a usun¡¢ tylko w drugim ko«cu (napocz¡tku kolejki head).
Operacje:1 Enqueue(Q, x) dodanie elementu x na ko«cu kolejki Q;
dodany element staje si¦ nowym ko«cem kolejki,
2 Dequeue(Q) usuni¦cie (i zwrócenie) z kolejki Q pocz¡tkukolejki.
Strategia FIFO = rst-in, rst-out.
56 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Kolejka
Kolejka (queue) dynamiczna struktura danych Q w formie ci¡gu,do której mo»na doª¡czy¢ skªadnik tylko w jednym ko«cu (nako«cu kolejki tail), a usun¡¢ tylko w drugim ko«cu (napocz¡tku kolejki head).
Operacje:1 Enqueue(Q, x) dodanie elementu x na ko«cu kolejki Q;
dodany element staje si¦ nowym ko«cem kolejki,
2 Dequeue(Q) usuni¦cie (i zwrócenie) z kolejki Q pocz¡tkukolejki.
Strategia FIFO = rst-in, rst-out.
56 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Kolejka
Kolejka (queue) dynamiczna struktura danych Q w formie ci¡gu,do której mo»na doª¡czy¢ skªadnik tylko w jednym ko«cu (nako«cu kolejki tail), a usun¡¢ tylko w drugim ko«cu (napocz¡tku kolejki head).
Operacje:1 Enqueue(Q, x) dodanie elementu x na ko«cu kolejki Q;
dodany element staje si¦ nowym ko«cem kolejki,
2 Dequeue(Q) usuni¦cie (i zwrócenie) z kolejki Q pocz¡tkukolejki.
Strategia FIFO = rst-in, rst-out.
56 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Kolejka
Kolejka (queue) dynamiczna struktura danych Q w formie ci¡gu,do której mo»na doª¡czy¢ skªadnik tylko w jednym ko«cu (nako«cu kolejki tail), a usun¡¢ tylko w drugim ko«cu (napocz¡tku kolejki head).
Operacje:1 Enqueue(Q, x) dodanie elementu x na ko«cu kolejki Q;
dodany element staje si¦ nowym ko«cem kolejki,
2 Dequeue(Q) usuni¦cie (i zwrócenie) z kolejki Q pocz¡tkukolejki.
Strategia FIFO = rst-in, rst-out.
56 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Kolejka
type wskkol = ^elkol;elkol = record
dane : typ-danych;
nast :wskkolend;
1. procedure Enqueue(nowedane : typ-danych; var koniec :wskkol);2. var punkt :wskkol;3. begin
4. punkt := koniec;5. New(koniec);6. koniec^.dane := nowedane;7. koniec^.nast := nil;
8. if punkt <> nil then
9. punkt^.nast := koniec10. end;
Uwaga. Aby dobrze zrealizowa¢ tworzenie kolejki trzeba mie¢dost¦p do wska¹nika na pocz¡tek...
57 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Kolejka
type wskkol = ^elkol;elkol = record
dane : typ-danych;
nast :wskkolend;
1. procedure Enqueue(nowedane : typ-danych; var koniec :wskkol);2. var punkt :wskkol;3. begin
4. punkt := koniec;5. New(koniec);6. koniec^.dane := nowedane;7. koniec^.nast := nil;
8. if punkt <> nil then
9. punkt^.nast := koniec10. end;
Uwaga. Aby dobrze zrealizowa¢ tworzenie kolejki trzeba mie¢dost¦p do wska¹nika na pocz¡tek...
57 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Kolejka
type wskkol = ^elkol;elkol = record
dane : typ-danych;
nast :wskkolend;
1. procedure Enqueue(nowedane : typ-danych; var koniec :wskkol);2. var punkt :wskkol;3. begin
4. punkt := koniec;5. New(koniec);6. koniec^.dane := nowedane;7. koniec^.nast := nil;
8. if punkt <> nil then
9. punkt^.nast := koniec10. end;
Uwaga. Aby dobrze zrealizowa¢ tworzenie kolejki trzeba mie¢dost¦p do wska¹nika na pocz¡tek...
57 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Kolejka
type wskkol = ^elkol;elkol = record
dane : typ-danych;
nast :wskkolend;
1. function Dequeue(var poczatek :wskkol) : typ-danych;
2. var punkt :wskkol;3. begin
4. if poczatek <> nil then
5. begin
6. Dequeue := poczatek^.dane;7. punkt := poczatek^.nast;8. Dispose(poczatek);9. poczatek := punkt10. end
11. else kolejka pusta! ....12. end;
58 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Listy
Lista (list) dynamiczna struktura danych L w formie ci¡gu, doktórej mo»na doª¡czy¢ lub usun¡¢ skªadnik w dowolnym miejscu(miejscu bie»¡cym).
Nale»y przechowywa¢ wska¹nik do miejsca bie»¡cego.
Operacje:1 Insert(L, x , b) dodanie elementu x do listy L w miejsce
wskazywane przez b.
2 Delete(L, b) usuni¦cie z listy L elementu wskazywanego przezb.
3 Search(L, n) wyszukiwanie wska¹nika do n-tego skªadnika listyL.
4 Search(L, k) wyszukiwanie wska¹nika do skªadnika listy L
zawieraj¡cego klucz k.
59 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Listy
Lista (list) dynamiczna struktura danych L w formie ci¡gu, doktórej mo»na doª¡czy¢ lub usun¡¢ skªadnik w dowolnym miejscu(miejscu bie»¡cym).
Nale»y przechowywa¢ wska¹nik do miejsca bie»¡cego.
Operacje:1 Insert(L, x , b) dodanie elementu x do listy L w miejsce
wskazywane przez b.
2 Delete(L, b) usuni¦cie z listy L elementu wskazywanego przezb.
3 Search(L, n) wyszukiwanie wska¹nika do n-tego skªadnika listyL.
4 Search(L, k) wyszukiwanie wska¹nika do skªadnika listy L
zawieraj¡cego klucz k.
59 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Listy
Lista (list) dynamiczna struktura danych L w formie ci¡gu, doktórej mo»na doª¡czy¢ lub usun¡¢ skªadnik w dowolnym miejscu(miejscu bie»¡cym).
Nale»y przechowywa¢ wska¹nik do miejsca bie»¡cego.
Operacje:1 Insert(L, x , b) dodanie elementu x do listy L w miejsce
wskazywane przez b.
2 Delete(L, b) usuni¦cie z listy L elementu wskazywanego przezb.
3 Search(L, n) wyszukiwanie wska¹nika do n-tego skªadnika listyL.
4 Search(L, k) wyszukiwanie wska¹nika do skªadnika listy L
zawieraj¡cego klucz k.
59 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Listy
Lista (list) dynamiczna struktura danych L w formie ci¡gu, doktórej mo»na doª¡czy¢ lub usun¡¢ skªadnik w dowolnym miejscu(miejscu bie»¡cym).
Nale»y przechowywa¢ wska¹nik do miejsca bie»¡cego.
Operacje:1 Insert(L, x , b) dodanie elementu x do listy L w miejsce
wskazywane przez b.
2 Delete(L, b) usuni¦cie z listy L elementu wskazywanego przezb.
3 Search(L, n) wyszukiwanie wska¹nika do n-tego skªadnika listyL.
4 Search(L, k) wyszukiwanie wska¹nika do skªadnika listy L
zawieraj¡cego klucz k.
59 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Listy
Lista (list) dynamiczna struktura danych L w formie ci¡gu, doktórej mo»na doª¡czy¢ lub usun¡¢ skªadnik w dowolnym miejscu(miejscu bie»¡cym).
Nale»y przechowywa¢ wska¹nik do miejsca bie»¡cego.
Operacje:1 Insert(L, x , b) dodanie elementu x do listy L w miejsce
wskazywane przez b.
2 Delete(L, b) usuni¦cie z listy L elementu wskazywanego przezb.
3 Search(L, n) wyszukiwanie wska¹nika do n-tego skªadnika listyL.
4 Search(L, k) wyszukiwanie wska¹nika do skªadnika listy L
zawieraj¡cego klucz k.
59 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Listy
Lista (list) dynamiczna struktura danych L w formie ci¡gu, doktórej mo»na doª¡czy¢ lub usun¡¢ skªadnik w dowolnym miejscu(miejscu bie»¡cym).
Nale»y przechowywa¢ wska¹nik do miejsca bie»¡cego.
Operacje:1 Insert(L, x , b) dodanie elementu x do listy L w miejsce
wskazywane przez b.
2 Delete(L, b) usuni¦cie z listy L elementu wskazywanego przezb.
3 Search(L, n) wyszukiwanie wska¹nika do n-tego skªadnika listyL.
4 Search(L, k) wyszukiwanie wska¹nika do skªadnika listy L
zawieraj¡cego klucz k.
59 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Listy
W zale»no±ci od powi¡za« pomi¦dzy skªadnikami wyró»niamy:
1 listy jednokierunkowe,
2 listy dwukierunkowe,
3 listy cykliczne:
jednokierunkowe,
dwukierunkowe.
60 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Listy
W zale»no±ci od powi¡za« pomi¦dzy skªadnikami wyró»niamy:
1 listy jednokierunkowe,
2 listy dwukierunkowe,
3 listy cykliczne:
jednokierunkowe,
dwukierunkowe.
60 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Listy
W zale»no±ci od powi¡za« pomi¦dzy skªadnikami wyró»niamy:
1 listy jednokierunkowe,
2 listy dwukierunkowe,
3 listy cykliczne:
jednokierunkowe,
dwukierunkowe.
60 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Listy
W zale»no±ci od powi¡za« pomi¦dzy skªadnikami wyró»niamy:
1 listy jednokierunkowe,
2 listy dwukierunkowe,
3 listy cykliczne:
jednokierunkowe,
dwukierunkowe.
60 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Lista jednokierunkowa
type wsklist = ^ellist;ellist = record
dane : typ-danych;
nast :wsklistend;
61 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Lista jednokierunkowa
1. procedure Insert(nowedane : typ-danych; var biez :wsklist);2. var poprz, nast :wsklist;3. begin
4. if biez <> nil then
5. begin
6. poprz := biez;7. nast := biez^.nast8. end
9. else begin
10. poprz := nil;
11. nast := nil
12. end;
13. New(biez);14. biez^.dane := nowedane;15. biez^.nast := nast;16. if poprz <> nil then17. poprz^.nast := biez;18. end;
Nale»y zadba¢, by w czasie tworzenia listy globalna zmiennapoczatek wskazaªa na skªadnik bie»¡cy!
62 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Lista jednokierunkowa
1. procedure Insert(nowedane : typ-danych; var biez :wsklist);2. var poprz, nast :wsklist;3. begin
4. if biez <> nil then
5. begin
6. poprz := biez;7. nast := biez^.nast8. end
9. else begin
10. poprz := nil;
11. nast := nil
12. end;
13. New(biez);14. biez^.dane := nowedane;15. biez^.nast := nast;16. if poprz <> nil then17. poprz^.nast := biez;18. end;
Nale»y zadba¢, by w czasie tworzenia listy globalna zmiennapoczatek wskazaªa na skªadnik bie»¡cy!
62 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Lista jednokierunkowa
1. function Delete(var pocz, biez :wsklist) : typ-danych;2. var poprz, nast :wsklist;3. begin
4. if (pocz <> nil) and (biez <> nil) then
5. if pocz <> biez then begin
6. poprz := pocz;7. nast := poprz^.nast;8. if nast <> biez then repeat
9. poprz := nast;10. nast := poprz^.nast;11. until nast = biez;12. Delete := biez^.dane;13. poprz^.nast := biez^.nast;14. Dispose(biez);15. biez := poprz16. end
17. else begin
18. Delete := pocz^.dane;19. pocz := pocz^.nast;20. Dispose(biez);21. biez := pocz;22. end else Lista pusta!23. end;
63 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Lista jednokierunkowa
1. procedure Search(var n : Integer; var pocz, biez :wsklist);2. var nast :wsklist;3. i : Integer;4. begin
5. if pocz <> nil then
6. if n=1 then biez := pocz7. else if (n=2) and (pocz^.nast=nil) then n := 08. else begin
9. nast := pocz;10. i := 1;11. repeat
12. i := i+1;13. if nast^.nast <> nil then
14. nast := nast^.nast15. until (nast^.nast=nil) or (i=n);16. if (nast^.nast=nil) and (i<n)then n := 017. else biez := nast;18. end
19. else n := 0;20. end;
wiczenie: Druga wersja Search.
64 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Lista jednokierunkowa
1. procedure Search(var n : Integer; var pocz, biez :wsklist);2. var nast :wsklist;3. i : Integer;4. begin
5. if pocz <> nil then
6. if n=1 then biez := pocz7. else if (n=2) and (pocz^.nast=nil) then n := 08. else begin
9. nast := pocz;10. i := 1;11. repeat
12. i := i+1;13. if nast^.nast <> nil then
14. nast := nast^.nast15. until (nast^.nast=nil) or (i=n);16. if (nast^.nast=nil) and (i<n)then n := 017. else biez := nast;18. end
19. else n := 0;20. end;
wiczenie: Druga wersja Search.64 / 65
A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Lista dwukierunkowa
type wsklist2 = ^ellist2;ellist2 = record
poprz :wsklist2dane : typ-danych;
nast :wsklist2end;
Implementacja: podobnie do listy jednokierunkowej, trzeba dba¢o wska¹nik na poprzedni element.
Zaleta: usuwanie w czasie O(1)!
Wada: wi¦ksza zaj¦to±¢ pami¦ci.
Bardziej zªo»one struktury danych pó¹niej.
65 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Lista dwukierunkowa
type wsklist2 = ^ellist2;ellist2 = record
poprz :wsklist2dane : typ-danych;
nast :wsklist2end;
Implementacja: podobnie do listy jednokierunkowej, trzeba dba¢o wska¹nik na poprzedni element.
Zaleta: usuwanie w czasie O(1)!
Wada: wi¦ksza zaj¦to±¢ pami¦ci.
Bardziej zªo»one struktury danych pó¹niej.
65 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Lista dwukierunkowa
type wsklist2 = ^ellist2;ellist2 = record
poprz :wsklist2dane : typ-danych;
nast :wsklist2end;
Implementacja: podobnie do listy jednokierunkowej, trzeba dba¢o wska¹nik na poprzedni element.
Zaleta: usuwanie w czasie O(1)!
Wada: wi¦ksza zaj¦to±¢ pami¦ci.
Bardziej zªo»one struktury danych pó¹niej.
65 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Lista dwukierunkowa
type wsklist2 = ^ellist2;ellist2 = record
poprz :wsklist2dane : typ-danych;
nast :wsklist2end;
Implementacja: podobnie do listy jednokierunkowej, trzeba dba¢o wska¹nik na poprzedni element.
Zaleta: usuwanie w czasie O(1)!
Wada: wi¦ksza zaj¦to±¢ pami¦ci.
Bardziej zªo»one struktury danych pó¹niej.
65 / 65A. Mróz, WMiI, UMK
N
Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych
Lista dwukierunkowa
type wsklist2 = ^ellist2;ellist2 = record
poprz :wsklist2dane : typ-danych;
nast :wsklist2end;
Implementacja: podobnie do listy jednokierunkowej, trzeba dba¢o wska¹nik na poprzedni element.
Zaleta: usuwanie w czasie O(1)!
Wada: wi¦ksza zaj¦to±¢ pami¦ci.
Bardziej zªo»one struktury danych pó¹niej.
65 / 65A. Mróz, WMiI, UMK
N