algorytmy i struktury danych - amroz/dydak/aisd/wyklad1.pdf · wykªad podstawy zªo»ono±¢...

258
N

Upload: hatuong

Post on 27-Feb-2019

233 views

Category:

Documents


0 download

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