• Nie Znaleziono Wyników

Część 1

N/A
N/A
Protected

Academic year: 2021

Share "Część 1"

Copied!
258
0
0

Pełen tekst

(1)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Algorytmy i struktury danych

Cz¦±¢ pierwsza

Prowadz¡cy: dr Andrzej Mróz,

Wydziaª Matematyki i Informatyki, Uniwersytet Mikoªaja Kopernika

1 / 65

(2)

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.

(3)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Opis przedmiotu

Zagadnienia, którymi si¦ zajmiemy:

metody projektowania algorytmów, przykªady algorytmów,

struktury danych, zªo»ono±¢ obliczeniowa.

Na ¢wiczeniach (laboratoriach):

implementowanie algorytmów z wykªadu,

projektowanie i implementowanie wªasnych algorytmów, szacowanie zªo»ono±ci obliczeniowej algorytmów.

2 / 65

(4)

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.

(5)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Opis przedmiotu

Zagadnienia, którymi si¦ zajmiemy:

metody projektowania algorytmów, przykªady algorytmów,

struktury danych, zªo»ono±¢ obliczeniowa.

Na ¢wiczeniach (laboratoriach):

implementowanie algorytmów z wykªadu,

projektowanie i implementowanie wªasnych algorytmów, szacowanie zªo»ono±ci obliczeniowej algorytmów.

2 / 65

(6)

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.

(7)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Opis przedmiotu

Zagadnienia, którymi si¦ zajmiemy:

metody projektowania algorytmów, przykªady algorytmów,

struktury danych, zªo»ono±¢ obliczeniowa.

Na ¢wiczeniach (laboratoriach):

implementowanie algorytmów z wykªadu,

projektowanie i implementowanie wªasnych algorytmów,

szacowanie zªo»ono±ci obliczeniowej algorytmów.

2 / 65

(8)

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.

(9)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Opis przedmiotu

Plan wykªadu(mo»e ulega¢ drobnym modykacjom):

poj¦cie zªo»ono±ci obliczeniowej algorytmów,

przegl¡d wybranych algorytmów sortowania, wska¹niki w j¦zyku programowania,

podstawowe struktury danych (stosy, kolejki, listy), metody ich implementacji,

elementy teorii grafów, struktury danych do reprezentowania grafów,

zªo»one struktury danych, algorytmy rekurencyjne,

metody projektowania algorytmów (metoda przyrostowa, zachªanna, dziel i zwyci¦»aj, programowanie dynamiczne), wybrane algorytmy grafowe, tekstowe, geometryczne (analiza ich poprawno±ci, zªo»ono±ci, metody implementacji),

wybrane algorytmy aproksymacyjne.

3 / 65

(10)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Opis przedmiotu

Plan wykªadu(mo»e ulega¢ drobnym modykacjom):

poj¦cie zªo»ono±ci obliczeniowej algorytmów, przegl¡d wybranych algorytmów sortowania,

wska¹niki w j¦zyku programowania,

podstawowe struktury danych (stosy, kolejki, listy), metody ich implementacji,

elementy teorii grafów, struktury danych do reprezentowania grafów,

zªo»one struktury danych, algorytmy rekurencyjne,

metody projektowania algorytmów (metoda przyrostowa, zachªanna, dziel i zwyci¦»aj, programowanie dynamiczne), wybrane algorytmy grafowe, tekstowe, geometryczne (analiza ich poprawno±ci, zªo»ono±ci, metody implementacji),

(11)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Opis przedmiotu

Plan wykªadu(mo»e ulega¢ drobnym modykacjom):

poj¦cie zªo»ono±ci obliczeniowej algorytmów, przegl¡d wybranych algorytmów sortowania, wska¹niki w j¦zyku programowania,

podstawowe struktury danych (stosy, kolejki, listy), metody ich implementacji,

elementy teorii grafów, struktury danych do reprezentowania grafów,

zªo»one struktury danych, algorytmy rekurencyjne,

metody projektowania algorytmów (metoda przyrostowa, zachªanna, dziel i zwyci¦»aj, programowanie dynamiczne), wybrane algorytmy grafowe, tekstowe, geometryczne (analiza ich poprawno±ci, zªo»ono±ci, metody implementacji),

wybrane algorytmy aproksymacyjne.

3 / 65

(12)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Opis przedmiotu

Plan wykªadu(mo»e ulega¢ drobnym modykacjom):

poj¦cie zªo»ono±ci obliczeniowej algorytmów, przegl¡d wybranych algorytmów sortowania, wska¹niki w j¦zyku programowania,

podstawowe struktury danych (stosy, kolejki, listy), metody ich implementacji,

elementy teorii grafów, struktury danych do reprezentowania grafów,

zªo»one struktury danych, algorytmy rekurencyjne,

metody projektowania algorytmów (metoda przyrostowa, zachªanna, dziel i zwyci¦»aj, programowanie dynamiczne), wybrane algorytmy grafowe, tekstowe, geometryczne (analiza ich poprawno±ci, zªo»ono±ci, metody implementacji),

(13)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Opis przedmiotu

Plan wykªadu(mo»e ulega¢ drobnym modykacjom):

poj¦cie zªo»ono±ci obliczeniowej algorytmów, przegl¡d wybranych algorytmów sortowania, wska¹niki w j¦zyku programowania,

podstawowe struktury danych (stosy, kolejki, listy), metody ich implementacji,

elementy teorii grafów, struktury danych do reprezentowania grafów,

zªo»one struktury danych, algorytmy rekurencyjne,

metody projektowania algorytmów (metoda przyrostowa, zachªanna, dziel i zwyci¦»aj, programowanie dynamiczne), wybrane algorytmy grafowe, tekstowe, geometryczne (analiza ich poprawno±ci, zªo»ono±ci, metody implementacji),

wybrane algorytmy aproksymacyjne.

3 / 65

(14)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Opis przedmiotu

Plan wykªadu(mo»e ulega¢ drobnym modykacjom):

poj¦cie zªo»ono±ci obliczeniowej algorytmów, przegl¡d wybranych algorytmów sortowania, wska¹niki w j¦zyku programowania,

podstawowe struktury danych (stosy, kolejki, listy), metody ich implementacji,

elementy teorii grafów, struktury danych do reprezentowania grafów,

zªo»one struktury danych,

algorytmy rekurencyjne,

metody projektowania algorytmów (metoda przyrostowa, zachªanna, dziel i zwyci¦»aj, programowanie dynamiczne), wybrane algorytmy grafowe, tekstowe, geometryczne (analiza ich poprawno±ci, zªo»ono±ci, metody implementacji),

(15)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Opis przedmiotu

Plan wykªadu(mo»e ulega¢ drobnym modykacjom):

poj¦cie zªo»ono±ci obliczeniowej algorytmów, przegl¡d wybranych algorytmów sortowania, wska¹niki w j¦zyku programowania,

podstawowe struktury danych (stosy, kolejki, listy), metody ich implementacji,

elementy teorii grafów, struktury danych do reprezentowania grafów,

zªo»one struktury danych, algorytmy rekurencyjne,

metody projektowania algorytmów (metoda przyrostowa, zachªanna, dziel i zwyci¦»aj, programowanie dynamiczne), wybrane algorytmy grafowe, tekstowe, geometryczne (analiza ich poprawno±ci, zªo»ono±ci, metody implementacji),

wybrane algorytmy aproksymacyjne.

3 / 65

(16)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Opis przedmiotu

Plan wykªadu(mo»e ulega¢ drobnym modykacjom):

poj¦cie zªo»ono±ci obliczeniowej algorytmów, przegl¡d wybranych algorytmów sortowania, wska¹niki w j¦zyku programowania,

podstawowe struktury danych (stosy, kolejki, listy), metody ich implementacji,

elementy teorii grafów, struktury danych do reprezentowania grafów,

zªo»one struktury danych, algorytmy rekurencyjne,

metody projektowania algorytmów (metoda przyrostowa, zachªanna, dziel i zwyci¦»aj, programowanie dynamiczne),

wybrane algorytmy grafowe, tekstowe, geometryczne (analiza ich poprawno±ci, zªo»ono±ci, metody implementacji),

(17)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Opis przedmiotu

Plan wykªadu(mo»e ulega¢ drobnym modykacjom):

poj¦cie zªo»ono±ci obliczeniowej algorytmów, przegl¡d wybranych algorytmów sortowania, wska¹niki w j¦zyku programowania,

podstawowe struktury danych (stosy, kolejki, listy), metody ich implementacji,

elementy teorii grafów, struktury danych do reprezentowania grafów,

zªo»one struktury danych, algorytmy rekurencyjne,

metody projektowania algorytmów (metoda przyrostowa, zachªanna, dziel i zwyci¦»aj, programowanie dynamiczne), wybrane algorytmy grafowe, tekstowe, geometryczne (analiza ich poprawno±ci, zªo»ono±ci, metody implementacji),

wybrane algorytmy aproksymacyjne.

3 / 65

(18)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Opis przedmiotu

Plan wykªadu(mo»e ulega¢ drobnym modykacjom):

poj¦cie zªo»ono±ci obliczeniowej algorytmów, przegl¡d wybranych algorytmów sortowania, wska¹niki w j¦zyku programowania,

podstawowe struktury danych (stosy, kolejki, listy), metody ich implementacji,

elementy teorii grafów, struktury danych do reprezentowania grafów,

zªo»one struktury danych, algorytmy rekurencyjne,

metody projektowania algorytmów (metoda przyrostowa, zachªanna, dziel i zwyci¦»aj, programowanie dynamiczne),

(19)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Opis przedmiotu

Nie wszystko jest na slajdach!

4 / 65

(20)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Literatura

1 T. H. Cormen, Ch. E. Leiserson, R. L. Rivest, Wprowadzenie do

algorytmów, WNT, Warszawa 2001.

2 D. Harel, Rzecz o istocie informatyki. Algorytmika, WNT,

Warszawa 1992.

3 A. V. Aho, J. E. Hopcroft, J. D. Ullman, Projektowanie i analiza

algorytmów komputerowych, Helion, Gliwice 2003.

4 L. Banachowski, K. Diks, W. Rytter, Algorytmy i struktury

danych, WNT, Warszawa 2006.

5 D. E. Knuth, Sztuka programowania, WNT, Warszawa 2002. 6 P. Sta«czyk, Algorytmika praktyczna. Nie tylko dla mistrzów,

PWN, Warszawa 2009.

7 V. V. Vazirani, Algorytmy aproksymacyjne, WNT, Warszawa

(21)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Egzamin

Forma: egzamin praktyczny przy komputerze.

Samodzielna implementacja kilku wybranych algorytmów  w tym algorytmów, które pojawi¡ sie na wykªadzie.

Forma poprawy: ustalana indywidualnie na podstawie wyników egzaminu.

6 / 65

(22)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Podstawy

Algorytm= precyzyjnie okre±lony, jednoznaczny, sko«czony opis przetworzenia pewnych danych wej±ciowych do pewnych

danych wyj±ciowych.

Specykacja problemu obliczeniowego: trójka (D, X , f ), gdzie

D  zbiór (zwany zbioremdanych wej±ciowych),

X  zbiór (zwany zbioremdanych wyj±ciowychlubwyników), f : D → X  funkcja.

Przykªad 1. Problem: liczenie silni liczby naturalnej. D = N, X = N, f (d) = d! Przykªad 2. Problem: test pierwszo±ci.

D = N\{1}, X = {True, False}, f (d) = 

True, d jest l. pierwsz¡, False, d jest l. zªo»on¡.

(23)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Podstawy

Algorytm= precyzyjnie okre±lony, jednoznaczny, sko«czony opis przetworzenia pewnych danych wej±ciowych do pewnych

danych wyj±ciowych.

Specykacja problemu obliczeniowego: trójka (D, X , f ), gdzie

D  zbiór (zwany zbioremdanych wej±ciowych),

X  zbiór (zwany zbioremdanych wyj±ciowychlubwyników), f : D → X  funkcja.

Przykªad 1. Problem: liczenie silni liczby naturalnej. D = N, X = N, f (d) = d! Przykªad 2. Problem: test pierwszo±ci.

D = N\{1}, X = {True, False}, f (d) = 

True, d jest l. pierwsz¡, False, d jest l. zªo»on¡.

7 / 65

(24)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Podstawy

Algorytm= precyzyjnie okre±lony, jednoznaczny, sko«czony opis przetworzenia pewnych danych wej±ciowych do pewnych

danych wyj±ciowych.

Specykacja problemu obliczeniowego: trójka (D, X , f ), gdzie

D  zbiór (zwany zbioremdanych wej±ciowych),

X  zbiór (zwany zbioremdanych wyj±ciowychlubwyników), f : D → X  funkcja.

Przykªad 1. Problem: liczenie silni liczby naturalnej. D = N, X = N, f (d) = d!

Przykªad 2. Problem: test pierwszo±ci. D = N\{1}, X = {True, False}, f (d) =



True, d jest l. pierwsz¡, False, d jest l. zªo»on¡.

(25)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Podstawy

Algorytm= precyzyjnie okre±lony, jednoznaczny, sko«czony opis przetworzenia pewnych danych wej±ciowych do pewnych

danych wyj±ciowych.

Specykacja problemu obliczeniowego: trójka (D, X , f ), gdzie

D  zbiór (zwany zbioremdanych wej±ciowych),

X  zbiór (zwany zbioremdanych wyj±ciowychlubwyników), f : D → X  funkcja.

Przykªad 1. Problem: liczenie silni liczby naturalnej. D = N, X = N, f (d) = d! Przykªad 2. Problem: test pierwszo±ci.

D = N\{1}, X = {True, False}, f (d) = 

True, d jest l. pierwsz¡, False, d jest l. zªo»on¡.

7 / 65

(26)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Podstawy

Def.: Algorytm A realizuj¡cy problem (D, X , f ) nazywamy

cz¦±ciowo poprawnym, gdy

d∈D je»eli A na d zatrzymuje si¦, to wynik x ∈ X speªnia f (d) = x.

Def.: Mówimy, »e algorytm A realizuj¡cy problem (D, X , f ) ma wªasno±¢stopu, gdy

d∈D A na d zatrzymuje si¦.

Def.: Algorytm A realizuj¡cy problem (D, X , f ) nazywamy

poprawnym, gdy

jest cz¦±ciowo poprawny, ma wªasno±¢ stopu.

(27)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Podstawy

Def.: Algorytm A realizuj¡cy problem (D, X , f ) nazywamy

cz¦±ciowo poprawnym, gdy

d∈D je»eli A na d zatrzymuje si¦, to wynik x ∈ X speªnia f (d) = x.

Def.: Mówimy, »e algorytm A realizuj¡cy problem (D, X , f ) ma wªasno±¢stopu, gdy

d∈D A na d zatrzymuje si¦.

Def.: Algorytm A realizuj¡cy problem (D, X , f ) nazywamy

poprawnym, gdy

jest cz¦±ciowo poprawny, ma wªasno±¢ stopu.

8 / 65

(28)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Podstawy

Def.: Algorytm A realizuj¡cy problem (D, X , f ) nazywamy

cz¦±ciowo poprawnym, gdy

d∈D je»eli A na d zatrzymuje si¦, to wynik x ∈ X speªnia f (d) = x.

Def.: Mówimy, »e algorytm A realizuj¡cy problem (D, X , f ) ma wªasno±¢stopu, gdy

d∈D A na d zatrzymuje si¦.

Def.: Algorytm A realizuj¡cy problem (D, X , f ) nazywamy

poprawnym, gdy

(29)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Podstawy

Sposoby zapisywania algorytmu: 1 opisowy  w j¦zyku naturalnym,

2 przy pomocy schematu blokowego,

3 przy pomocy konkretnego j¦zyka programowania (Pascal), 4 przy pomocypseudokodu:

uproszczonego kodu ª¡cz¡cego elementy skªadni j¦zyków programowania wysokiego poziomu z j¦zykiem naturalnym.

9 / 65

(30)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Podstawy

Sposoby zapisywania algorytmu: 1 opisowy  w j¦zyku naturalnym, 2 przy pomocy schematu blokowego,

3 przy pomocy konkretnego j¦zyka programowania (Pascal), 4 przy pomocypseudokodu:

uproszczonego kodu ª¡cz¡cego elementy skªadni j¦zyków programowania wysokiego poziomu z j¦zykiem naturalnym.

(31)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Podstawy

Sposoby zapisywania algorytmu: 1 opisowy  w j¦zyku naturalnym, 2 przy pomocy schematu blokowego,

3 przy pomocy konkretnego j¦zyka programowania (Pascal),

4 przy pomocypseudokodu:

uproszczonego kodu ª¡cz¡cego elementy skªadni j¦zyków programowania wysokiego poziomu z j¦zykiem naturalnym.

9 / 65

(32)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Podstawy

Sposoby zapisywania algorytmu: 1 opisowy  w j¦zyku naturalnym, 2 przy pomocy schematu blokowego,

3 przy pomocy konkretnego j¦zyka programowania (Pascal), 4 przy pomocypseudokodu:

uproszczonego kodu ª¡cz¡cego elementy skªadni j¦zyków programowania wysokiego poziomu z j¦zykiem naturalnym.

(33)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Podstawy

Przykªad. Test pierwszo±ci. Specykacja: (D, X , f ). D = N\{1}, X = {True, False}, f (d) =



True, d jest l. pierwsz¡, False, d jest l. zªo»on¡.

Wykorzystamy

Lemat. Liczba naturalna n ≥ 2 jest zªo»ona ⇔ posiada dzielnik p ∈ N taki, »e

2 ≤ p ≤√n.

10 / 65

(34)

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

(35)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Podstawy

Ad 3: j¦zyk programowania Pascal. functionpierwsza(n : Integer ) : Boolean;

varp : Integer; B : Boolean; begin p := 2; B := True; while(p ∗ p <= n)andB do ifn mod p = 0thenB := False

elsep := p + 1; pierwsza := B

end;

Uwaga. Wªasno±¢ stopu i cz¦±ciowa poprawno±¢ wynika bezpo±rednio z lematu i konstrukcji p¦tli.

11 / 65

(36)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Podstawy

Ad 3: j¦zyk programowania Pascal. functionpierwsza(n : Integer ) : Boolean;

varp : Integer; B : Boolean; begin p := 2; B := True; while(p ∗ p <= n)andB do ifn mod p = 0thenB := False

elsep := p + 1; pierwsza := B

end;

(37)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Podstawy

Ad 4: pseudokod. Konwencje:

bez technik programowania jak kontrola bª¦dów, typów danych, obsªuga pami¦ci itp.,

brak deklaracji zmiennych,

skªadnia zbli»ona do Pascala (sªowa kluczowe),

nazwy procedur/funkcji na ogóª angloj¦zyczne (zgodno±¢ z literatur¡),

dopuszczamy wstawki w j¦zyku naturalnym (pl),

do zwracania warto±ci stosujemy klauzul¦ return(o semantyce jak w C).

12 / 65

(38)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Podstawy

Ad 4: pseudokod. Konwencje:

bez technik programowania jak kontrola bª¦dów, typów danych, obsªuga pami¦ci itp.,

brak deklaracji zmiennych,

skªadnia zbli»ona do Pascala (sªowa kluczowe),

nazwy procedur/funkcji na ogóª angloj¦zyczne (zgodno±¢ z literatur¡),

dopuszczamy wstawki w j¦zyku naturalnym (pl),

do zwracania warto±ci stosujemy klauzul¦ return(o semantyce jak w C).

(39)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Podstawy

Ad 4: pseudokod. Konwencje:

bez technik programowania jak kontrola bª¦dów, typów danych, obsªuga pami¦ci itp.,

brak deklaracji zmiennych,

skªadnia zbli»ona do Pascala (sªowa kluczowe),

nazwy procedur/funkcji na ogóª angloj¦zyczne (zgodno±¢ z literatur¡),

dopuszczamy wstawki w j¦zyku naturalnym (pl),

do zwracania warto±ci stosujemy klauzul¦ return(o semantyce jak w C).

12 / 65

(40)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Podstawy

Ad 4: pseudokod. Konwencje:

bez technik programowania jak kontrola bª¦dów, typów danych, obsªuga pami¦ci itp.,

brak deklaracji zmiennych,

skªadnia zbli»ona do Pascala (sªowa kluczowe),

nazwy procedur/funkcji na ogóª angloj¦zyczne (zgodno±¢ z literatur¡),

dopuszczamy wstawki w j¦zyku naturalnym (pl),

do zwracania warto±ci stosujemy klauzul¦ return(o semantyce jak w C).

(41)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Podstawy

Ad 4: pseudokod. Konwencje:

bez technik programowania jak kontrola bª¦dów, typów danych, obsªuga pami¦ci itp.,

brak deklaracji zmiennych,

skªadnia zbli»ona do Pascala (sªowa kluczowe),

nazwy procedur/funkcji na ogóª angloj¦zyczne (zgodno±¢ z literatur¡),

dopuszczamy wstawki w j¦zyku naturalnym (pl),

do zwracania warto±ci stosujemy klauzul¦ return(o semantyce jak w C).

12 / 65

(42)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Podstawy

Ad 4: pseudokod. Konwencje:

bez technik programowania jak kontrola bª¦dów, typów danych, obsªuga pami¦ci itp.,

brak deklaracji zmiennych,

skªadnia zbli»ona do Pascala (sªowa kluczowe),

nazwy procedur/funkcji na ogóª angloj¦zyczne (zgodno±¢ z literatur¡),

dopuszczamy wstawki w j¦zyku naturalnym (pl),

do zwracania warto±ci stosujemy klauzul¦ return(o semantyce jak w C).

(43)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Podstawy

begin p := 2; B := True; while(p ∗ p <= n)andB do ifn mod p = 0thenB := False

elsep := p + 1; returnB end; lub begin p := 2; whilep ∗ p <= ndo

ifn mod p = 0then return False

elsep := p + 1;

returnTrue

end;

13 / 65

(44)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Analiza algorytmów

czas oblicze«, pami¦¢ RAM, pami¦¢ dyskowa,

inne zasoby (szeroko±¢ ª¡cza komunikacji)...

Uwaga. Cz¦sto zmniejszenie zu»ycia jednych zasobów wymusza zwi¦kszenie zu»ycia innych!

(45)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Analiza algorytmów

czas oblicze«, pami¦¢ RAM, pami¦¢ dyskowa,

inne zasoby (szeroko±¢ ª¡cza komunikacji)...

Uwaga. Cz¦sto zmniejszenie zu»ycia jednych zasobów wymusza zwi¦kszenie zu»ycia innych!

14 / 65

(46)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Zªo»ono±¢ obliczeniowa (czasowa)

J = zbiór operacji jednostkowych okre±lonych dla konkretnego j¦zyka (Pascal)

Przyjmujemy

J = { operacje arytm., log., relac., instr. przypisania, przekazanie parametrów,... }

P  program,

D  zbiór danych wej±ciowych dla P

EXP(d)  wykonanie P na d ∈ D (ci¡g instrukcji).

Zaªo»enie: ∀d∈D |EXP(d)| < ∞.

Def. Peªn¡ funkcj¡ kosztuprogramu P ze wzgl¦du na J nazywamy funkcj¦

t = tP,J :D → N,

okre±lon¡: t(d) = liczba operacji ze zbioru J wyst¦puj¡cych w EXP(d), dla d ∈ D.

(47)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Zªo»ono±¢ obliczeniowa (czasowa)

J = zbiór operacji jednostkowych okre±lonych dla konkretnego j¦zyka (Pascal)

Przyjmujemy

J = { operacje arytm., log., relac., instr. przypisania, przekazanie parametrów,... }

P  program,

D  zbiór danych wej±ciowych dla P

EXP(d)  wykonanie P na d ∈ D (ci¡g instrukcji).

Zaªo»enie: ∀d∈D |EXP(d)| < ∞.

Def. Peªn¡ funkcj¡ kosztuprogramu P ze wzgl¦du na J nazywamy funkcj¦

t = tP,J :D → N,

okre±lon¡: t(d) = liczba operacji ze zbioru J wyst¦puj¡cych w EXP(d), dla d ∈ D.

15 / 65

(48)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Zªo»ono±¢ obliczeniowa (czasowa)

J = zbiór operacji jednostkowych okre±lonych dla konkretnego j¦zyka (Pascal)

Przyjmujemy

J = { operacje arytm., log., relac., instr. przypisania, przekazanie parametrów,... }

P  program,

D  zbiór danych wej±ciowych dla P

EXP(d)  wykonanie P na d ∈ D (ci¡g instrukcji).

Zaªo»enie: ∀d∈D |EXP(d)| < ∞.

Def. Peªn¡ funkcj¡ kosztu programu P ze wzgl¦du na J nazywamy funkcj¦

(49)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Zªo»ono±¢ obliczeniowa (czasowa)

Przykªad. Test pierwszo±ci. J = {:=, ∗, <=, +, =, and, mod }, D = N \ {1}. maks. begin p := 2; 1 B := True; 1 while(p ∗ p <= n)andB do 3·(b√nc + 1)

ifn mod p = 0thenB := False

2·b√nc+1 elsep := p + 1; 2·b√nc pierwsza := B 1 end; t(n) ≤ 1 + 1 + 3(b√nc + 1) + 2b√nc + 1 + 2b√nc + 1 =7b√nc + 7

Uwaga. Zakªadamy, »e wszystkie operacje jednostkowe wykonywane s¡ w czasie staªym!

16 / 65

(50)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Zªo»ono±¢ obliczeniowa (czasowa)

Przykªad. Test pierwszo±ci. J = {:=, ∗, <=, +, =, and, mod }, D = N \ {1}. maks. begin p := 2; 1 B := True; 1 while(p ∗ p <= n)andB do 3 ·(b√nc + 1)

ifn mod p = 0thenB := False 2

·b√nc +1 elsep := p + 1; 2 ·b√nc pierwsza := B 1 end; t(n) ≤ 1 + 1 + 3(b√nc + 1) + 2b√nc + 1 + 2b√nc + 1 =7b√nc + 7

Uwaga. Zakªadamy, »e wszystkie operacje jednostkowe wykonywane s¡ w czasie staªym!

(51)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Zªo»ono±¢ obliczeniowa (czasowa)

Przykªad. Test pierwszo±ci. J = {:=, ∗, <=, +, =, and, mod }, D = N \ {1}. maks. begin p := 2; 1 B := True; 1 while(p ∗ p <= n)andB do 3·(b√nc + 1)

ifn mod p = 0thenB := False 2·b√nc+1

elsep := p + 1; 2·b√nc

pierwsza := B 1

end;

t(n) ≤ 1 + 1 + 3(b√nc + 1) + 2b√nc + 1 + 2b√nc + 1 =7b√nc + 7

Uwaga. Zakªadamy, »e wszystkie operacje jednostkowe wykonywane s¡ w czasie staªym!

16 / 65

(52)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Zªo»ono±¢ obliczeniowa (czasowa)

Przykªad. Test pierwszo±ci. J = {:=, ∗, <=, +, =, and, mod }, D = N \ {1}. maks. begin p := 2; 1 B := True; 1 while(p ∗ p <= n)andB do 3·(b√nc + 1)

ifn mod p = 0thenB := False 2·b√nc+1

elsep := p + 1; 2·b√nc

pierwsza := B 1

end;

t(n) ≤ 1 + 1 + 3(b√nc + 1) + 2b√nc + 1 + 2b√nc + 1 =7b√nc + 7

Uwaga. Zakªadamy, »e wszystkie operacje jednostkowe wykonywane s¡ w czasie staªym!

(53)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Zªo»ono±¢ obliczeniowa (czasowa)

Przykªad. Test pierwszo±ci. J = {:=, ∗, <=, +, =, and, mod }, D = N \ {1}. maks. begin p := 2; 1 B := True; 1 while(p ∗ p <= n)andB do 3·(b√nc + 1)

ifn mod p = 0thenB := False 2·b√nc+1

elsep := p + 1; 2·b√nc

pierwsza := B 1

end;

t(n) ≤ 1 + 1 + 3(b√nc + 1) + 2b√nc + 1 + 2b√nc + 1 =7b√nc + 7

Uwaga. Zakªadamy, »e wszystkie operacje jednostkowe wykonywane s¡ w czasie staªym!

16 / 65

(54)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Zªo»ono±¢ obliczeniowa (czasowa)

Przypadek pesymistyczny. n jest liczb¡ pierwsz¡. Wówczas t(n) = 7b√nc + 7.

Przypadek optymistyczny. n jest liczb¡ parzyst¡. Wówczas begin p := 2; 1 B := True; 1 while(p ∗ p <= n)andB do 3·2

ifn mod p = 0thenB := False

2+1 elsep := p + 1; 2·0 pierwsza := B 1 end; t(n) = 1 + 1 + 6 + 3 + 1 = 12. Wniosek. 12 ≤ t(n) ≤ 7b√nc + 7.

(55)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Zªo»ono±¢ obliczeniowa (czasowa)

Przypadek pesymistyczny. n jest liczb¡ pierwsz¡. Wówczas t(n) = 7b√nc + 7.

Przypadek optymistyczny. n jest liczb¡ parzyst¡. Wówczas begin

p := 2; 1

B := True; 1

while(p ∗ p <= n)andB do 3

·2

ifn mod p = 0thenB := False 2+1

elsep := p + 1; 2 ·0 pierwsza := B 1 end; t(n) = 1 + 1 + 6 + 3 + 1 = 12. Wniosek. 12 ≤ t(n) ≤ 7b√nc + 7. 17 / 65 A. Mróz, WMiI, UMK

(56)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Zªo»ono±¢ obliczeniowa (czasowa)

Przypadek pesymistyczny. n jest liczb¡ pierwsz¡. Wówczas t(n) = 7b√nc + 7.

Przypadek optymistyczny. n jest liczb¡ parzyst¡. Wówczas begin

p := 2; 1

B := True; 1

while(p ∗ p <= n)andB do 3·2

ifn mod p = 0thenB := False 2+1

elsep := p + 1; 2·0

pierwsza := B 1

end;

t(n) = 1 + 1 + 6 + 3 + 1 = 12. Wniosek. 12 ≤ t(n) ≤ 7b√nc + 7.

(57)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Zªo»ono±¢ obliczeniowa (czasowa)

Przypadek pesymistyczny. n jest liczb¡ pierwsz¡. Wówczas t(n) = 7b√nc + 7.

Przypadek optymistyczny. n jest liczb¡ parzyst¡. Wówczas begin

p := 2; 1

B := True; 1

while(p ∗ p <= n)andB do 3·2

ifn mod p = 0thenB := False 2+1

elsep := p + 1; 2·0 pierwsza := B 1 end; t(n) = 1 + 1 + 6 + 3 + 1 = 12. Wniosek. 12 ≤ t(n) ≤ 7b√nc + 7. 17 / 65 A. Mróz, WMiI, UMK

(58)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Zªo»ono±¢ obliczeniowa (czasowa)

Przypadek pesymistyczny. n jest liczb¡ pierwsz¡. Wówczas t(n) = 7b√nc + 7.

Przypadek optymistyczny. n jest liczb¡ parzyst¡. Wówczas begin

p := 2; 1

B := True; 1

while(p ∗ p <= n)andB do 3·2

ifn mod p = 0thenB := False 2+1

elsep := p + 1; 2·0

pierwsza := B 1

end;

(59)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Zªo»ono±¢  uproszczenia

Ustalmy specykacj¦ problemu (D, X , f ), realizuj¡cy go program (algorytm) P oraz zbiór operacji J.

Def. Niech W b¦dzie niepustym zbiorem (zwanymzbiorem rozmiarów). Dowoln¡ funkcj¦ r : D → W nazywamyfunkcj¡ rozmiaru danych.

Def. Funkcj¡ kosztualgorytmu (programu) P przy ustalonych J, D, W , r nazywamy funkcj¦ (cz¦±ciow¡) T : W 99K N okre±lon¡ wzorem

T (w) := sup{t(d) : d ∈ D, r(d) = w }. Inne uproszczenia.

ograniczenie si¦ do zliczania operacji dominuj¡cych w danej linii,

ignorowanie linii wykonywanych w czasie staªym  poza p¦tlami (ostro»nie!).

18 / 65

(60)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Zªo»ono±¢  uproszczenia

Ustalmy specykacj¦ problemu (D, X , f ), realizuj¡cy go program (algorytm) P oraz zbiór operacji J.

Def. Niech W b¦dzie niepustym zbiorem (zwanymzbiorem rozmiarów). Dowoln¡ funkcj¦ r : D → W nazywamyfunkcj¡ rozmiaru danych.

Def. Funkcj¡ kosztualgorytmu (programu) P przy ustalonych J, D, W , r nazywamy funkcj¦ (cz¦±ciow¡) T : W 99K N okre±lon¡ wzorem

T (w) := sup{t(d) : d ∈ D, r(d) = w }. Inne uproszczenia.

ograniczenie si¦ do zliczania operacji dominuj¡cych w danej linii,

ignorowanie linii wykonywanych w czasie staªym  poza p¦tlami (ostro»nie!).

(61)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Zªo»ono±¢  uproszczenia

Ustalmy specykacj¦ problemu (D, X , f ), realizuj¡cy go program (algorytm) P oraz zbiór operacji J.

Def. Niech W b¦dzie niepustym zbiorem (zwanymzbiorem rozmiarów). Dowoln¡ funkcj¦ r : D → W nazywamyfunkcj¡ rozmiaru danych.

Def. Funkcj¡ kosztualgorytmu (programu) P przy ustalonych J, D, W , r nazywamy funkcj¦ (cz¦±ciow¡) T : W 99K N okre±lon¡ wzorem

T (w) := sup{t(d) : d ∈ D, r(d) = w }.

Inne uproszczenia.

ograniczenie si¦ do zliczania operacji dominuj¡cych w danej linii,

ignorowanie linii wykonywanych w czasie staªym  poza p¦tlami (ostro»nie!).

18 / 65

(62)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Zªo»ono±¢  uproszczenia

Ustalmy specykacj¦ problemu (D, X , f ), realizuj¡cy go program (algorytm) P oraz zbiór operacji J.

Def. Niech W b¦dzie niepustym zbiorem (zwanymzbiorem rozmiarów). Dowoln¡ funkcj¦ r : D → W nazywamyfunkcj¡ rozmiaru danych.

Def. Funkcj¡ kosztualgorytmu (programu) P przy ustalonych J, D, W , r nazywamy funkcj¦ (cz¦±ciow¡) T : W 99K N okre±lon¡ wzorem

T (w) := sup{t(d) : d ∈ D, r(d) = w }. Inne uproszczenia.

ograniczenie si¦ do zliczania operacji dominuj¡cych w danej linii,

(63)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Zªo»ono±¢  przykªady

Problem: obliczanie warto±ci wielomianu. Tj. dla wielomianu p(x) = anxn+an−1xn−1+ . . . +a1x + a0∈ R[x] oraz x0 ∈ R,

obliczy¢ warto±¢ p(x0) ∈ R.

Specykacja: (D, X , f ), gdzie

D = {(n, a, x0) :n ∈ N, a = (a0, . . . ,an) ∈ Rn+1,x0 ∈ R},

X = R, f ((n, a, x0)) =anx0n+an−1x0n−1+ . . . +a1x0+a0. Funkcja rozmiaru danych: przyjmujemy W := N, r : D → W ,

r((n, a, x0)) =n.

19 / 65

(64)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Zªo»ono±¢  przykªady

Problem: obliczanie warto±ci wielomianu. Tj. dla wielomianu p(x) = anxn+an−1xn−1+ . . . +a1x + a0∈ R[x] oraz x0 ∈ R,

obliczy¢ warto±¢ p(x0) ∈ R. Specykacja: (D, X , f ), gdzie

D = {(n, a, x0) :n ∈ N, a = (a0, . . . ,an) ∈ Rn+1,x0 ∈ R},

X = R, f ((n, a, x0)) =anx0n+an−1x0n−1+ . . . +a1x0+a0.

Funkcja rozmiaru danych: przyjmujemy W := N, r : D → W , r((n, a, x0)) =n.

(65)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Zªo»ono±¢  przykªady

Problem: obliczanie warto±ci wielomianu. Tj. dla wielomianu p(x) = anxn+an−1xn−1+ . . . +a1x + a0∈ R[x] oraz x0 ∈ R,

obliczy¢ warto±¢ p(x0) ∈ R. Specykacja: (D, X , f ), gdzie

D = {(n, a, x0) :n ∈ N, a = (a0, . . . ,an) ∈ Rn+1,x0 ∈ R},

X = R, f ((n, a, x0)) =anx0n+an−1x0n−1+ . . . +a1x0+a0. Funkcja rozmiaru danych: przyjmujemy W := N, r : D → W ,

r((n, a, x0)) =n.

19 / 65

(66)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Zªo»ono±¢  przykªady

Algorytm naiwny:

functionwielomian(n : Integer; a :array ofReal; x0 : Real) : Real;

vari, j : Integer; w, m : Real; begin w := 0; 1 for i := 0tondo 3·(n + 2) begin m := a[i]; 2·(n + 1) for j := 1toi do Pn i=0 3·(i + 1) m := m ∗ x0; Pn i=0 2·i w := w + m; 2·(n + 1) end; wielomian := w 1 end; t((n, a, x0)) = 12 + 7n + 3 Pni=0(i + 1) + 2 Pni=0i = = 12 + 7n + 3n2+3n+22 +2n22+n = 52n2+252 n + 15.

(67)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Zªo»ono±¢  przykªady

Algorytm naiwny:

functionwielomian(n : Integer; a :array ofReal; x0 : Real) : Real;

vari, j : Integer; w, m : Real; begin w := 0; 1 for i := 0tondo 3 ·(n + 2) begin m := a[i]; 2 ·(n + 1) for j := 1toi do Pn i=0 3 ·(i + 1) m := m ∗ x0; Pn i=0 2 ·i w := w + m; 2 ·(n + 1) end; wielomian := w 1 end; t((n, a, x0)) = 12 + 7n + 3 Pni=0(i + 1) + 2 Pni=0i = = 12 + 7n + 3n2+3n+22 +2n22+n = 52n2+252 n + 15. 20 / 65 A. Mróz, WMiI, UMK

(68)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Zªo»ono±¢  przykªady

Algorytm naiwny:

functionwielomian(n : Integer; a :array ofReal; x0 : Real) : Real;

vari, j : Integer; w, m : Real; begin w := 0; 1 for i := 0tondo 3 ·(n + 2) begin m := a[i]; 2 ·(n + 1) for j := 1toi do Pn i=0 3·(i + 1) m := m ∗ x0; Pn i=0 2·i w := w + m; 2 ·(n + 1) end; wielomian := w 1 end; t((n, a, x0)) = 12 + 7n + 3 Pni=0(i + 1) + 2 Pni=0i = = 12 + 7n + 3n2+3n+22 +2n22+n = 52n2+252 n + 15.

(69)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Zªo»ono±¢  przykªady

Algorytm naiwny:

functionwielomian(n : Integer; a :array ofReal; x0 : Real) : Real;

vari, j : Integer; w, m : Real; begin w := 0; 1 for i := 0tondo 3·(n + 2) begin m := a[i]; 2·(n + 1) for j := 1toi do Pn i=0 3·(i + 1) m := m ∗ x0; Pn i=0 2·i w := w + m; 2·(n + 1) end; wielomian := w 1 end; t((n, a, x0)) = 12 + 7n + 3 Pni=0(i + 1) + 2 Pni=0i = = 12 + 7n + 3n2+3n+22 +2n22+n = 52n2+252 n + 15. 20 / 65 A. Mróz, WMiI, UMK

(70)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Zªo»ono±¢  przykªady

Algorytm naiwny:

functionwielomian(n : Integer; a :array ofReal; x0 : Real) : Real;

vari, j : Integer; w, m : Real; begin w := 0; 1 for i := 0tondo 3·(n + 2) begin m := a[i]; 2·(n + 1) for j := 1toi do Pn i=0 3·(i + 1) m := m ∗ x0; Pn i=0 2·i w := w + m; 2·(n + 1) end; wielomian := w 1 end; t((n, a, x0)) = 12 + 7n + 3 Pni=0(i + 1) + 2 Pni=0i = = 12 + 7n + 3n2+3n+22 +2n22+n = 52n2+252 n + 15.

(71)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Zªo»ono±¢  przykªady

Algorytm naiwny:

functionwielomian(n : Integer; a :array ofReal; x0 : Real) : Real;

vari, j : Integer; w, m : Real; begin w := 0; 1 for i := 0tondo 3·(n + 2) begin m := a[i]; 2·(n + 1) for j := 1toi do Pn i=0 3·(i + 1) m := m ∗ x0; Pn i=0 2·i w := w + m; 2·(n + 1) end; wielomian := w 1 end; t((n, a, x0)) = 12 + 7n + 3 Pni=0(i + 1) + 2 Pni=0i = = 12 + 7n + 3n2+3n+22 +2n22+n = 52n2+252 n + 15. 20 / 65 A. Mróz, WMiI, UMK

(72)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Zªo»ono±¢  przykªady

Uwaga. Warto±¢ t((n, a, x0)) zale»y tylko od n

⇒ w tym wypadku

T (n) = t((n, a, x0)) = 52n2+25 2 n + 15

(przypomnijmy, »e funkcj¦ rozmiaru danych okre±lili±my wzorem r((n, a, x0)) =n,

zatem funkcja kosztu jest zadana:

T (w) := sup{t((n, a, x0)) : (n, a, x0) ∈D, r((n, a, x0)) =w }, dla w ∈ W = N).

(73)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Zªo»ono±¢  przykªady

Uwaga. Warto±¢ t((n, a, x0)) zale»y tylko od n ⇒ w tym wypadku

T (n) = t((n, a, x0)) = 52n2+25 2 n + 15

(przypomnijmy, »e funkcj¦ rozmiaru danych okre±lili±my wzorem r((n, a, x0)) =n,

zatem funkcja kosztu jest zadana:

T (w) := sup{t((n, a, x0)) : (n, a, x0) ∈D, r((n, a, x0)) =w }, dla w ∈ W = N).

21 / 65

(74)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Wielomiany  usprawnienie

Metoda Hornera: n X i=0 aixi = (...(anx + an−1)x + . . . + a1)x + a0.

functionHorner(n : Integer; a :array ofReal; x0 : Real) : Real;

vari : Integer; w : Real; begin w := a[n]; 1 fori := n − 1downto0do 3·(n + 1) w := w ∗ x0 + a[i]; 3·n Horner := w 1 end; T (n) = t((n, a, x0)) = 6n + 5.

(75)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Wielomiany  usprawnienie

Metoda Hornera: n X i=0 aixi = (...(anx + an−1)x + . . . + a1)x + a0.

functionHorner(n : Integer; a :array ofReal; x0 : Real) : Real;

vari : Integer; w : Real; begin w := a[n]; 1 fori := n − 1downto0do 3·(n + 1) w := w ∗ x0 + a[i]; 3·n Horner := w 1 end; T (n) = t((n, a, x0)) = 6n + 5. 22 / 65 A. Mróz, WMiI, UMK

(76)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Wielomiany  usprawnienie

Metoda Hornera: n X i=0 aixi = (...(anx + an−1)x + . . . + a1)x + a0.

functionHorner(n : Integer; a :array ofReal; x0 : Real) : Real;

vari : Integer; w : Real; begin w := a[n]; 1 fori := n − 1downto0do 3 ·(n + 1) w := w ∗ x0 + a[i]; 3 ·n Horner := w 1 end; T (n) = t((n, a, x0)) = 6n + 5.

(77)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Wielomiany  usprawnienie

Metoda Hornera: n X i=0 aixi = (...(anx + an−1)x + . . . + a1)x + a0.

functionHorner(n : Integer; a :array ofReal; x0 : Real) : Real;

vari : Integer; w : Real; begin w := a[n]; 1 fori := n − 1downto0do 3·(n + 1) w := w ∗ x0 + a[i]; 3·n Horner := w 1 end; T (n) = t((n, a, x0)) = 6n + 5. 22 / 65 A. Mróz, WMiI, UMK

(78)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Wielomiany  usprawnienie

Metoda Hornera: n X i=0 aixi = (...(anx + an−1)x + . . . + a1)x + a0.

functionHorner(n : Integer; a :array ofReal; x0 : Real) : Real;

vari : Integer; w : Real; begin w := a[n]; 1 fori := n − 1downto0do 3·(n + 1) w := w ∗ x0 + a[i]; 3·n Horner := w 1 end;

(79)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Asymptotyczna zªo»ono±¢

Ustalmy funkcj¦ g : N → N (cz¦sto funkcj¦ g uto»samiamy z jej wzorem g(n); dopuszczamy te» funkcje o warto±ciach w R+).

Def.

Ω(g(n)) := {f (n) : ∃c∈R+,n0∈N ∀n≥n0 0 ≤ cg(n) ≤ f (n) },

O(g(n)) := {f (n) : ∃c∈R+,n0∈Nn≥n0 0 ≤ f (n) ≤ cg(n) },

Θ(g(n)) := {f (n) : ∃c1,c2∈R+,n0∈N∀n≥n0 0 ≤ c1g(n) ≤ f (n) ≤ c2g(n) }.

Umowa. Zapis f (n) = Ω(g(n)) oznacza, »e f (n) ∈ Ω(g(n)) (analogicznie dla O, Θ).

23 / 65

(80)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Asymptotyczna zªo»ono±¢

Ustalmy funkcj¦ g : N → N (cz¦sto funkcj¦ g uto»samiamy z jej wzorem g(n); dopuszczamy te» funkcje o warto±ciach w R+).

Def.

Ω(g(n)) := {f (n) : ∃c∈R+,n0∈N ∀n≥n0 0 ≤ cg(n) ≤ f (n) },

O(g(n)) := {f (n) : ∃c∈R+,n0∈Nn≥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, Θ).

(81)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Asymptotyczna zªo»ono±¢

Ustalmy funkcj¦ g : N → N (cz¦sto funkcj¦ g uto»samiamy z jej wzorem g(n); dopuszczamy te» funkcje o warto±ciach w R+).

Def.

Ω(g(n)) := {f (n) : ∃c∈R+,n0∈N ∀n≥n0 0 ≤ cg(n) ≤ f (n) },

O(g(n)) := {f (n) : ∃c∈R+,n0∈Nn≥n0 0 ≤ f (n) ≤ cg(n) },

Θ(g(n)) := {f (n) : ∃c1,c2∈R+,n0∈N∀n≥n0 0 ≤ c1g(n) ≤ f (n) ≤ c2g(n) }.

Umowa. Zapis f (n) = Ω(g(n)) oznacza, »e f (n) ∈ Ω(g(n)) (analogicznie dla O, Θ).

23 / 65

(82)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Asymptotyczna zªo»ono±¢

Ustalmy funkcj¦ g : N → N (cz¦sto funkcj¦ g uto»samiamy z jej wzorem g(n); dopuszczamy te» funkcje o warto±ciach w R+).

Def.

Ω(g(n)) := {f (n) : ∃c∈R+,n0∈N ∀n≥n0 0 ≤ cg(n) ≤ f (n) },

O(g(n)) := {f (n) : ∃c∈R+,n0∈Nn≥n0 0 ≤ f (n) ≤ cg(n) },

Θ(g(n)) := {f (n) : ∃c1,c2∈R+,n0∈N∀n≥n0 0 ≤ c1g(n) ≤ f (n) ≤ c2g(n) }.

(83)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Asymptotyczna zªo»ono±¢

Gdy f (n) = Ω(g(n)), mówimy, »e g(n) jestasymptotyczn¡ granic¡ doln¡dla f (n) (lub, »e f (n) jest rz¦du co najmniej g(n)).

Gdy f (n) = O(g(n)), mówimy, »e g(n) jestasymptotyczn¡ granic¡ górn¡dla f (n) (lub, »e f (n) jest rz¦du co najwy»ej g(n)). Gdy f (n) = Θ(g(n)), mówimy, »e g(n) jestasymptotycznie dokªadnym oszacowaniemdla f (n) (lub, »e f (n) jest rz¦du dokªadnie g(n)).

Twierdzenie. Dla ka»dych dwóch funkcji f (n), g(n) zachodzi: f (n) ∈ Θ(g(n)) ⇔ f (n) ∈ Ω(g(n)) ∧ f (n) ∈ O(g(n)).

24 / 65

(84)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Asymptotyczna zªo»ono±¢

Gdy f (n) = Ω(g(n)), mówimy, »e g(n) jestasymptotyczn¡ granic¡ doln¡dla f (n) (lub, »e f (n) jest rz¦du co najmniej g(n)). Gdy f (n) = O(g(n)), mówimy, »e g(n) jestasymptotyczn¡ granic¡ górn¡dla f (n) (lub, »e f (n) jest rz¦du co najwy»ej g(n)).

Gdy f (n) = Θ(g(n)), mówimy, »e g(n) jestasymptotycznie dokªadnym oszacowaniemdla f (n) (lub, »e f (n) jest rz¦du dokªadnie g(n)).

Twierdzenie. Dla ka»dych dwóch funkcji f (n), g(n) zachodzi: f (n) ∈ Θ(g(n)) ⇔ f (n) ∈ Ω(g(n)) ∧ f (n) ∈ O(g(n)).

(85)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Asymptotyczna zªo»ono±¢

Gdy f (n) = Ω(g(n)), mówimy, »e g(n) jestasymptotyczn¡ granic¡ doln¡dla f (n) (lub, »e f (n) jest rz¦du co najmniej g(n)). Gdy f (n) = O(g(n)), mówimy, »e g(n) jestasymptotyczn¡ granic¡ górn¡dla f (n) (lub, »e f (n) jest rz¦du co najwy»ej g(n)). Gdy f (n) = Θ(g(n)), mówimy, »e g(n) jestasymptotycznie dokªadnym oszacowaniemdla f (n) (lub, »e f (n) jest rz¦du dokªadnie g(n)).

Twierdzenie. Dla ka»dych dwóch funkcji f (n), g(n) zachodzi: f (n) ∈ Θ(g(n)) ⇔ f (n) ∈ Ω(g(n)) ∧ f (n) ∈ O(g(n)).

24 / 65

(86)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Asymptotyczna zªo»ono±¢

Gdy f (n) = Ω(g(n)), mówimy, »e g(n) jestasymptotyczn¡ granic¡ doln¡dla f (n) (lub, »e f (n) jest rz¦du co najmniej g(n)). Gdy f (n) = O(g(n)), mówimy, »e g(n) jestasymptotyczn¡ granic¡ górn¡dla f (n) (lub, »e f (n) jest rz¦du co najwy»ej g(n)). Gdy f (n) = Θ(g(n)), mówimy, »e g(n) jestasymptotycznie dokªadnym oszacowaniemdla f (n) (lub, »e f (n) jest rz¦du dokªadnie g(n)).

Twierdzenie. Dla ka»dych dwóch funkcji f (n), g(n) zachodzi: f (n) ∈ Θ(g(n)) ⇔ f (n) ∈ Ω(g(n)) ∧ f (n) ∈ O(g(n)).

(87)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Asymptotyczna zªo»ono±¢

Najprostsze przykªady. (1) Niech f (n) = 5n2. Wówczas

oczywi±cie

0 ≤ 5n2 ≤f (n) ≤ 5n2, zatem

f (n) = Θ(n2)

(za staªe c1,c2,n0 mo»emy przyj¡¢ odpowiednio 5, 5, 1  patrz def.

zbioru Θ). (2) Niech f (n) = n2. Wówczas 0 ≤ n ≤ f (n) ⇒ f (n) = Ω(n), 0 ≤ f (n) ≤ n3 ⇒ f (n) = O(n3), ale f (n) /∈ Θ(n3), f (n) /∈ Θ(n). 25 / 65 A. Mróz, WMiI, UMK

(88)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Asymptotyczna zªo»ono±¢

Najprostsze przykªady. (1) Niech f (n) = 5n2. Wówczas

oczywi±cie

0 ≤ 5n2 ≤f (n) ≤ 5n2, zatem

f (n) = Θ(n2)

(za staªe c1,c2,n0 mo»emy przyj¡¢ odpowiednio 5, 5, 1  patrz def.

zbioru Θ). (2) Niech f (n) = n2. Wówczas 0 ≤ n ≤ f (n) ⇒ f (n) = Ω(n), 0 ≤ f (n) ≤ n3 ⇒ f (n) = O(n3), ale f (n) /∈ Θ(n3), f (n) /∈ Θ(n).

(89)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Asymptotyczna zªo»ono±¢

Najprostsze przykªady. (1) Niech f (n) = 5n2. Wówczas

oczywi±cie

0 ≤ 5n2 ≤f (n) ≤ 5n2, zatem

f (n) = Θ(n2)

(za staªe c1,c2,n0 mo»emy przyj¡¢ odpowiednio 5, 5, 1  patrz def.

zbioru Θ). (2) Niech f (n) = n2. Wówczas 0 ≤ n ≤ f (n) ⇒ f (n) = Ω(n), 0 ≤ f (n) ≤ n3 ⇒ f (n) = O(n3), ale f (n) /∈ Θ(n3), f (n) /∈ Θ(n). 25 / 65 A. Mróz, WMiI, UMK

(90)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Asymptotyczna zªo»ono±¢

Najprostsze przykªady. (1) Niech f (n) = 5n2. Wówczas

oczywi±cie

0 ≤ 5n2 ≤f (n) ≤ 5n2, zatem

f (n) = Θ(n2)

(za staªe c1,c2,n0 mo»emy przyj¡¢ odpowiednio 5, 5, 1  patrz def.

zbioru Θ).

(2) Niech f (n) = n2. Wówczas

0 ≤ n ≤ f (n) ⇒ f (n) = Ω(n), 0 ≤ f (n) ≤ n3 ⇒ f (n) = O(n3), ale

(91)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Asymptotyczna zªo»ono±¢

(3) Niech f (n) = k, dla ustalonego k ∈ N (tj. f jest funkcj¡ staª¡). Wówczas oczywi±cie 0 ≤ k · 1 ≤ f (n) ≤ k · 1 zatem f (n) = Θ(1). (4) 2n∈ Θ(/ n2), n2∈ Θ(/ 2n). (5) Dla b > 1 i d ≥ 0, nd = O(bn).

(6) Dla b > 1 i d > 0, logbn = O(nd).

26 / 65

(92)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Asymptotyczna zªo»ono±¢

(3) Niech f (n) = k, dla ustalonego k ∈ N (tj. f jest funkcj¡ staª¡). Wówczas oczywi±cie 0 ≤ k · 1 ≤ f (n) ≤ k · 1 zatem f (n) = Θ(1). (4) 2n∈ Θ(/ n2), n2 ∈ Θ(/ 2n). (5) Dla b > 1 i d ≥ 0, nd = O(bn).

(93)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Asymptotyczna zªo»ono±¢

(3) Niech f (n) = k, dla ustalonego k ∈ N (tj. f jest funkcj¡ staª¡). Wówczas oczywi±cie 0 ≤ k · 1 ≤ f (n) ≤ k · 1 zatem f (n) = Θ(1). (4) 2n∈ Θ(/ n2), n2 ∈ Θ(/ 2n). (5) Dla b > 1 i d ≥ 0, nd = O(bn).

(6) Dla b > 1 i d > 0, logbn = O(nd).

26 / 65

(94)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Asymptotyczna zªo»ono±¢

(3) Niech f (n) = k, dla ustalonego k ∈ N (tj. f jest funkcj¡ staª¡). Wówczas oczywi±cie 0 ≤ k · 1 ≤ f (n) ≤ k · 1 zatem f (n) = Θ(1). (4) 2n∈ Θ(/ n2), n2 ∈ Θ(/ 2n). (5) Dla b > 1 i d ≥ 0, nd = O(bn).

(95)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Asymptotyczna zªo»ono±¢

Inne wªasno±ci. 1 f (n) = Ω(f (n)), 2 f (n) = O(f (n)), 3 f (n) = Θ(f (n)), 4 f (n) = Θ(g(n)) ⇔ g(n) = Θ(f (n)), 5 f (n) = O(g(n)) ⇔ g(n) = Ω(f (n)),

6 f (n) = O(g(n)) ∧ g(n) = O(h(n)) ⇒ f (n) = O(h(n))

(analogicznie dla Ω, Θ).

7 Dla staªej d ∈ R+, df (n) = O(f (n)) (analogicznie dla Ω, Θ).

27 / 65

(96)

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 Ω, Θ).

(97)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Asymptotyczna zªo»ono±¢

Inne wªasno±ci. 1 f (n) = Ω(f (n)), 2 f (n) = O(f (n)), 3 f (n) = Θ(f (n)), 4 f (n) = Θ(g(n)) ⇔ g(n) = Θ(f (n)), 5 f (n) = O(g(n)) ⇔ g(n) = Ω(f (n)),

6 f (n) = O(g(n)) ∧ g(n) = O(h(n)) ⇒ f (n) = O(h(n))

(analogicznie dla Ω, Θ).

7 Dla staªej d ∈ R+, df (n) = O(f (n)) (analogicznie dla Ω, Θ).

27 / 65

(98)

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 Ω, Θ).

(99)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Asymptotyczna zªo»ono±¢

Inne wªasno±ci. 1 f (n) = Ω(f (n)), 2 f (n) = O(f (n)), 3 f (n) = Θ(f (n)), 4 f (n) = Θ(g(n)) ⇔ g(n) = Θ(f (n)), 5 f (n) = O(g(n)) ⇔ g(n) = Ω(f (n)),

6 f (n) = O(g(n)) ∧ g(n) = O(h(n)) ⇒ f (n) = O(h(n))

(analogicznie dla Ω, Θ).

7 Dla staªej d ∈ R+, df (n) = O(f (n)) (analogicznie dla Ω, Θ).

27 / 65

(100)

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 Ω, Θ).

(101)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Asymptotyczna zªo»ono±¢

Inne wªasno±ci. 1 f (n) = Ω(f (n)), 2 f (n) = O(f (n)), 3 f (n) = Θ(f (n)), 4 f (n) = Θ(g(n)) ⇔ g(n) = Θ(f (n)), 5 f (n) = O(g(n)) ⇔ g(n) = Ω(f (n)),

6 f (n) = O(g(n)) ∧ g(n) = O(h(n)) ⇒ f (n) = O(h(n))

(analogicznie dla Ω, Θ).

7 Dla staªej d ∈ R+, df (n) = O(f (n)) (analogicznie dla Ω, Θ).

27 / 65

(102)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Asymptotyczna zªo»ono±¢

Uwaga. Niech

f (n) = adnd+ad−1nd−1+ . . .a1n + a0,

ad 6=0 (tj. f (n) jest wielomianem stopnia d). Wówczas

k ≥ d ⇒ f (n) = O(nk),

k ≤ d ⇒ f (n) = Ω(nk),

(103)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Asymptotyczna zªo»ono±¢

Uwaga. Niech

f (n) = adnd+ad−1nd−1+ . . .a1n + a0,

ad 6=0 (tj. f (n) jest wielomianem stopnia d). Wówczas

k ≥ d ⇒ f (n) = O(nk),

k ≤ d ⇒ f (n) = Ω(nk),

k = d ⇒ f (n) = Θ(nk).

28 / 65

(104)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Asymptotyczna zªo»ono±¢

Uwaga. Niech

f (n) = adnd+ad−1nd−1+ . . .a1n + a0,

ad 6=0 (tj. f (n) jest wielomianem stopnia d). Wówczas

k ≥ d ⇒ f (n) = O(nk),

k ≤ d ⇒ f (n) = Ω(nk),

(105)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Asymptotyczna zªo»ono±¢

Uwaga. Niech

f (n) = adnd+ad−1nd−1+ . . .a1n + a0,

ad 6=0 (tj. f (n) jest wielomianem stopnia d). Wówczas

k ≥ d ⇒ f (n) = O(nk),

k ≤ d ⇒ f (n) = Ω(nk),

k = d ⇒ f (n) = Θ(nk).

28 / 65

(106)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Asymptotyczna zªo»ono±¢

Ustalmy algorytm (program) P o zbiorze danych wej±ciowych D, funkcj¦ rozmiaru danych r : D → W oraz zbiór operacji J. Niech T : W 99K N b¦dzie funkcj¡ kosztu.

Def. Gdy T (n) = Ω(g(n)), mówimy, »e algorytm P ma zªo»ono±¢ rz¦du co najmniejg(n).

Def. Gdy T (n) = O(g(n)), mówimy, »e algorytm P ma zªo»ono±¢ rz¦du co najwy»ejg(n).

Def. Gdy T (n) = Θ(g(n)), mówimy, »e algorytm P ma zªo»ono±¢ rz¦dug(n) (dokªadnie g(n)).

Zªo»ono±¢ = asymptotyczna pesymistyczna zªo»ono±¢ obliczeniowa (czasowa).

(107)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Asymptotyczna zªo»ono±¢

Ustalmy algorytm (program) P o zbiorze danych wej±ciowych D, funkcj¦ rozmiaru danych r : D → W oraz zbiór operacji J. Niech T : W 99K N b¦dzie funkcj¡ kosztu.

Def. Gdy T (n) = Ω(g(n)), mówimy, »e algorytm P ma zªo»ono±¢ rz¦du co najmniejg(n).

Def. Gdy T (n) = O(g(n)), mówimy, »e algorytm P ma zªo»ono±¢ rz¦du co najwy»ejg(n).

Def. Gdy T (n) = Θ(g(n)), mówimy, »e algorytm P ma zªo»ono±¢ rz¦dug(n) (dokªadnie g(n)).

Zªo»ono±¢ = asymptotyczna pesymistyczna zªo»ono±¢ obliczeniowa (czasowa).

29 / 65

(108)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Asymptotyczna zªo»ono±¢

Ustalmy algorytm (program) P o zbiorze danych wej±ciowych D, funkcj¦ rozmiaru danych r : D → W oraz zbiór operacji J. Niech T : W 99K N b¦dzie funkcj¡ kosztu.

Def. Gdy T (n) = Ω(g(n)), mówimy, »e algorytm P ma zªo»ono±¢ rz¦du co najmniejg(n).

Def. Gdy T (n) = O(g(n)), mówimy, »e algorytm P ma zªo»ono±¢ rz¦du co najwy»ejg(n).

Def. Gdy T (n) = Θ(g(n)), mówimy, »e algorytm P ma zªo»ono±¢ rz¦dug(n) (dokªadnie g(n)).

Zªo»ono±¢ = asymptotyczna pesymistyczna zªo»ono±¢ obliczeniowa (czasowa).

(109)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Asymptotyczna zªo»ono±¢

Ustalmy algorytm (program) P o zbiorze danych wej±ciowych D, funkcj¦ rozmiaru danych r : D → W oraz zbiór operacji J. Niech T : W 99K N b¦dzie funkcj¡ kosztu.

Def. Gdy T (n) = Ω(g(n)), mówimy, »e algorytm P ma zªo»ono±¢ rz¦du co najmniejg(n).

Def. Gdy T (n) = O(g(n)), mówimy, »e algorytm P ma zªo»ono±¢ rz¦du co najwy»ejg(n).

Def. Gdy T (n) = Θ(g(n)), mówimy, »e algorytm P ma zªo»ono±¢ rz¦dug(n) (dokªadnie g(n)).

Zªo»ono±¢ = asymptotyczna pesymistyczna zªo»ono±¢ obliczeniowa (czasowa).

29 / 65

(110)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Asymptotyczna zªo»ono±¢

Ustalmy algorytm (program) P o zbiorze danych wej±ciowych D, funkcj¦ rozmiaru danych r : D → W oraz zbiór operacji J. Niech T : W 99K N b¦dzie funkcj¡ kosztu.

Def. Gdy T (n) = Ω(g(n)), mówimy, »e algorytm P ma zªo»ono±¢ rz¦du co najmniejg(n).

Def. Gdy T (n) = O(g(n)), mówimy, »e algorytm P ma zªo»ono±¢ rz¦du co najwy»ejg(n).

Def. Gdy T (n) = Θ(g(n)), mówimy, »e algorytm P ma zªo»ono±¢ rz¦dug(n) (dokªadnie g(n)).

(111)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Asymptotyczna zªo»ono±¢

Wró¢my do rozwa»anych algorytmów. (1) Test pierwszo±ci.

12 ≤ t(n) ≤ 7b√nc + 7.

Przy trywialnej funkcji rozmiaru danych r(n) = n, mamy T (n) = t(n). St¡d

T (n) = O(√n), ale T (n) /∈ Ω(√n), wi¦c

T (n) /∈ Θ(√n).

Nasz algorytm ma zªo»ono±¢ rz¦du co najwy»ej√n.

30 / 65

(112)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Asymptotyczna zªo»ono±¢

Wró¢my do rozwa»anych algorytmów. (1) Test pierwszo±ci.

12 ≤ t(n) ≤ 7b√nc + 7.

Przy trywialnej funkcji rozmiaru danych r(n) = n, mamy T (n) = t(n). St¡d

T (n) = O(√n), ale T (n) /∈ Ω(√n), wi¦c

T (n) /∈ Θ(√n).

(113)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Asymptotyczna zªo»ono±¢

Wró¢my do rozwa»anych algorytmów. (1) Test pierwszo±ci.

12 ≤ t(n) ≤ 7b√nc + 7.

Przy trywialnej funkcji rozmiaru danych r(n) = n, mamy T (n) = t(n).

St¡d

T (n) = O(√n), ale T (n) /∈ Ω(√n), wi¦c

T (n) /∈ Θ(√n).

Nasz algorytm ma zªo»ono±¢ rz¦du co najwy»ej√n.

30 / 65

(114)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Asymptotyczna zªo»ono±¢

Wró¢my do rozwa»anych algorytmów. (1) Test pierwszo±ci.

12 ≤ t(n) ≤ 7b√nc + 7.

Przy trywialnej funkcji rozmiaru danych r(n) = n, mamy T (n) = t(n). St¡d

T (n) = O(√n),

ale T (n) /∈ Ω(√n), wi¦c

T (n) /∈ Θ(√n).

(115)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Asymptotyczna zªo»ono±¢

Wró¢my do rozwa»anych algorytmów. (1) Test pierwszo±ci.

12 ≤ t(n) ≤ 7b√nc + 7.

Przy trywialnej funkcji rozmiaru danych r(n) = n, mamy T (n) = t(n). St¡d

T (n) = O(√n), ale T (n) /∈ Ω(√n), wi¦c

T (n) /∈ Θ(√n).

Nasz algorytm ma zªo»ono±¢ rz¦du co najwy»ej√n.

30 / 65

(116)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Asymptotyczna zªo»ono±¢

Wró¢my do rozwa»anych algorytmów. (1) Test pierwszo±ci.

12 ≤ t(n) ≤ 7b√nc + 7.

Przy trywialnej funkcji rozmiaru danych r(n) = n, mamy T (n) = t(n). St¡d

T (n) = O(√n), ale T (n) /∈ Ω(√n), wi¦c

(117)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Asymptotyczna zªo»ono±¢

(2) Naiwny algorytm liczenia warto±ci wielomianu.

T (n) = 52n2+25

2 n + 15. St¡d

T (n) = Θ(n2),

wi¦c algorytm ma zªo»ono±¢ dokªadnie rz¦du n2 (wielomianow¡

stopnia 2 lub kwadratow¡).

(3) Algorytm liczenia warto±ci wielomianu metod¡ Hornera. T (n) = 6n + 5.

St¡d

T (n) = Θ(n),

wi¦c algorytm ma zªo»ono±¢ dokªadnie rz¦du n (liniow¡).

31 / 65

(118)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Asymptotyczna zªo»ono±¢

(2) Naiwny algorytm liczenia warto±ci wielomianu. T (n) = 52n2+25

2 n + 15.

St¡d

T (n) = Θ(n2),

wi¦c algorytm ma zªo»ono±¢ dokªadnie rz¦du n2 (wielomianow¡

stopnia 2 lub kwadratow¡).

(3) Algorytm liczenia warto±ci wielomianu metod¡ Hornera. T (n) = 6n + 5.

St¡d

T (n) = Θ(n),

(119)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Asymptotyczna zªo»ono±¢

(2) Naiwny algorytm liczenia warto±ci wielomianu. T (n) = 52n2+25

2 n + 15. St¡d

T (n) = Θ(n2),

wi¦c algorytm ma zªo»ono±¢ dokªadnie rz¦du n2 (wielomianow¡

stopnia 2 lub kwadratow¡).

(3) Algorytm liczenia warto±ci wielomianu metod¡ Hornera. T (n) = 6n + 5.

St¡d

T (n) = Θ(n),

wi¦c algorytm ma zªo»ono±¢ dokªadnie rz¦du n (liniow¡).

31 / 65

(120)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Asymptotyczna zªo»ono±¢

(2) Naiwny algorytm liczenia warto±ci wielomianu. T (n) = 52n2+25

2 n + 15. St¡d

T (n) = Θ(n2),

wi¦c algorytm ma zªo»ono±¢ dokªadnie rz¦du n2 (wielomianow¡

stopnia 2 lub kwadratow¡).

(3) Algorytm liczenia warto±ci wielomianu metod¡ Hornera.

T (n) = 6n + 5. St¡d

T (n) = Θ(n),

(121)

Wykªad Podstawy Zªo»ono±¢ Sortowanie Wska¹niki El. struktury danych

Asymptotyczna zªo»ono±¢

(2) Naiwny algorytm liczenia warto±ci wielomianu. T (n) = 52n2+25

2 n + 15. St¡d

T (n) = Θ(n2),

wi¦c algorytm ma zªo»ono±¢ dokªadnie rz¦du n2 (wielomianow¡

stopnia 2 lub kwadratow¡).

(3) Algorytm liczenia warto±ci wielomianu metod¡ Hornera. T (n) = 6n + 5.

St¡d

T (n) = Θ(n),

wi¦c algorytm ma zªo»ono±¢ dokªadnie rz¦du n (liniow¡).

31 / 65

Cytaty

Powiązane dokumenty

Naszym zadaniem jest znalezienie przyw´odcy cia ‘ gu w

Znając łańcuch decyzji optymalnych łatwo odtworzyć łańcuch optymalnych sterowań (odpływów ze zbiornika ) przy których zapewniona zostanie minimalna wartość wskaźnika

[∗∗] Wyznacz wartość progową (threshold) opłacalności stosowania algorytmu mnożenia długich liczb metodą „dziel i zwyciężaj” z podziałem na dwie części w stosunku

▶ algorytm KMP jest bardzo tolerancyjny jeśli chodzi o alfabet (może być dowolny, nawet nie musi być sortowalny) i definicję równości słów – można go.. zaadoptować nawet

I algorytm KMP jest bardzo tolerancyjny jeśli chodzi o alfabet (może być dowolny, nawet nie musi być sortowalny) i definicję równości słów – można go zaadoptować nawet do

Jeżeli metoda zostanie zadeklarowana jako wirtualna (w klasie bazowej) i w klasie pochodnej w stosunku do niej jest zdefiniowana metoda o takim samym nagłówku, to dla obiektów

Jeżeli blok catch zostanie „dopasowany” do obiektu reprezentującego wyjątek (tzn. jego typ danych odpowiada typowi danych zmiennej zdefiniowanej w nawiasie okrągłym po

pokazywanie erraty lub poprawek redakcyjnych, tworzenie chmurek z wyjaśnieniami do tekstu, zaznaczanie tekstu (na skanie) kolorami, łącza do odwołań, źródeł, innych słowników,