Algorytmy i struktury danych

Wielkość: px
Rozpocząć pokaz od strony:

Download "Algorytmy i struktury danych"

Transkrypt

1 Algorytmy i struktury danych Cz ± pierwsza Prowadz cy: dr Andrzej Mróz, Wydziaª Matematyki i Informatyki, Uniwersytet Mikoªaja Kopernika 1 / 65

2 Opis przedmiotu Zagadnienia, którymi si zajmiemy: metody projektowania algorytmów, 2 / 65

3 Opis przedmiotu Zagadnienia, którymi si zajmiemy: metody projektowania algorytmów, przykªady algorytmów, 2 / 65

4 Opis przedmiotu Zagadnienia, którymi si zajmiemy: metody projektowania algorytmów, przykªady algorytmów, struktury danych, 2 / 65

5 Opis przedmiotu Zagadnienia, którymi si zajmiemy: metody projektowania algorytmów, przykªady algorytmów, struktury danych, zªo»ono± obliczeniowa. 2 / 65

6 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, 2 / 65

7 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, 2 / 65

8 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

9 Opis przedmiotu Plan wykªadu (mo»e ulega drobnym modykacjom): poj cie zªo»ono±ci obliczeniowej algorytmów, 3 / 65

10 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, 3 / 65

11 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, 3 / 65

12 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, 3 / 65

13 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, 3 / 65

14 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, 3 / 65

15 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, 3 / 65

16 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), 3 / 65

17 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), 3 / 65

18 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

19 Opis przedmiotu Nie wszystko jest na slajdach! 4 / 65

20 Literatura 1 T. H. Cormen, Ch. E. Leiserson, R. L. Rivest, Wprowadzenie do algorytmów, WNT, Warszawa D. Harel, Rzecz o istocie informatyki. Algorytmika, WNT, Warszawa A. V. Aho, J. E. Hopcroft, J. D. Ullman, Projektowanie i analiza algorytmów komputerowych, Helion, Gliwice L. Banachowski, K. Diks, W. Rytter, Algorytmy i struktury danych, WNT, Warszawa D. E. Knuth, Sztuka programowania, WNT, Warszawa P. Sta«czyk, Algorytmika praktyczna. Nie tylko dla mistrzów, PWN, Warszawa V. V. Vazirani, Algorytmy aproksymacyjne, WNT, Warszawa Przydatny: podr cznik do j zyka Pascal. 5 / 65

21 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 Podstawy Algorytm = precyzyjnie okre±lony, jednoznaczny, sko«czony opis przetworzenia pewnych danych wej±ciowych do pewnych danych wyj±ciowych. 7 / 65

23 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 zbiorem danych wej±ciowych), X zbiór (zwany zbiorem danych wyj±ciowych lub wyników), f : D X funkcja. 7 / 65

24 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 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! 7 / 65

25 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 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. { True, d jest l. pierwsz, D = N\{1}, X = {True, False}, f (d) = False, d jest l. zªo»on. 7 / 65

26 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. 8 / 65

27 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. 8 / 65

28 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

29 Podstawy Sposoby zapisywania algorytmu: 1 opisowy w j zyku naturalnym, 9 / 65

30 Podstawy Sposoby zapisywania algorytmu: 1 opisowy w j zyku naturalnym, 2 przy pomocy schematu blokowego, 9 / 65

31 Podstawy Sposoby zapisywania algorytmu: 1 opisowy w j zyku naturalnym, 2 przy pomocy schematu blokowego, 3 przy pomocy konkretnego j zyka programowania (Pascal), 9 / 65

32 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ów programowania wysokiego poziomu z j zykiem naturalnym. 9 / 65

33 Podstawy Przykªad. Test pierwszo±ci. Specykacja: (D, X, f ). { True, d jest l. pierwsz, D = N\{1}, X = {True, False}, f (d) = False, d jest l. zªo»on. 10 / 65

34 Podstawy Przykªad. Test pierwszo±ci. Specykacja: (D, X, f ). { True, d jest l. pierwsz, D = N\{1}, X = {True, False}, f (d) = 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

35 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; 11 / 65

36 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± wynika bezpo±rednio z lematu i konstrukcji p tli. 11 / 65

37 Podstawy Ad 4: pseudokod. Konwencje: bez technik programowania jak kontrola bª dów, typów danych, obsªuga pami ci itp., 12 / 65

38 Podstawy Ad 4: pseudokod. Konwencje: bez technik programowania jak kontrola bª dów, typów danych, obsªuga pami ci itp., brak deklaracji zmiennych, 12 / 65

39 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), 12 / 65

40 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 ), 12 / 65

41 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), 12 / 65

42 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

43 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 end; else p := p + 1; return True 13 / 65

44 Analiza algorytmów czas oblicze«, pami RAM, pami dyskowa, inne zasoby (szeroko± ª cza komunikacji) / 65

45 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 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,... } 15 / 65

47 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 EX P (d) wykonanie P na d D (ci g instrukcji). Zaªo»enie: d D EX P (d) <. 15 / 65

48 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 EX P (d) wykonanie P na d D (ci g instrukcji). Zaªo»enie: d D EX P (d) <. Def. Peªn funkcj kosztu programu P ze wzgl du na J nazywamy funkcj t = t P,J : D N, okre±lon : t(d) = liczba operacji ze zbioru J wyst puj cych w EX P (d), dla d D. 15 / 65

49 Zªo»ono± obliczeniowa (czasowa) Przykªad. Test pierwszo±ci. J = {:=,, <=, +, =, and, mod }, D = N \ {1}. 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; 16 / 65

50 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 if n mod p = 0 then B := False 2 +1 else p := p + 1; 2 pierwsza := B 1 end; 16 / 65

51 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 ( n + 1) if n mod p = 0 then B := False 2 n +1 else p := p + 1; 2 n pierwsza := B 1 end; 16 / 65

52 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 ( n + 1) if n mod p = 0 then B := False 2 n +1 else p := p + 1; 2 n pierwsza := B 1 end; t(n) ( n + 1) + 2 n n + 1 = 7 n / 65

53 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 ( n + 1) if n mod p = 0 then B := False 2 n +1 else p := p + 1; 2 n pierwsza := B 1 end; t(n) ( n + 1) + 2 n n + 1 = 7 n + 7 Uwaga. Zakªadamy,»e wszystkie operacje jednostkowe wykonywane s w czasie staªym! 16 / 65

54 Zªo»ono± obliczeniowa (czasowa) Przypadek pesymistyczny. n jest liczb pierwsz. Wówczas t(n) = 7 n / 65

55 Zªo»ono± obliczeniowa (czasowa) Przypadek pesymistyczny. n jest liczb pierwsz. Wówczas t(n) = 7 n + 7. Przypadek optymistyczny. n jest liczb parzyst. Wówczas begin p := 2; 1 B := True; 1 while (p p <= n) and B do 3 if n mod p = 0 then B := False 2+1 else p := p + 1; 2 pierwsza := B 1 end; 17 / 65

56 Zªo»ono± obliczeniowa (czasowa) Przypadek pesymistyczny. n jest liczb pierwsz. Wówczas t(n) = 7 n + 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; 17 / 65

57 Zªo»ono± obliczeniowa (czasowa) Przypadek pesymistyczny. n jest liczb pierwsz. Wówczas t(n) = 7 n + 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) = = / 65

58 Zªo»ono± obliczeniowa (czasowa) Przypadek pesymistyczny. n jest liczb pierwsz. Wówczas t(n) = 7 n + 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) = = 12. Wniosek. 12 t(n) 7 n / 65

59 Zªo»ono± uproszczenia Ustalmy specykacj problemu (D, X, f ), realizuj cy go program (algorytm) P oraz zbiór operacji J. 18 / 65

60 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 zbiorem rozmiarów). Dowoln funkcj r : D W nazywamy funkcj rozmiaru danych. 18 / 65

61 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 zbiorem rozmiarów). Dowoln funkcj r : D W nazywamy funkcj rozmiaru danych. Def. Funkcj kosztu algorytmu (programu) P przy ustalonych J, D, W, r nazywamy funkcj (cz ±ciow ) T : W N okre±lon wzorem T (w) := sup{t(d) : d D, r(d) = w }. 18 / 65

62 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 zbiorem rozmiarów). Dowoln funkcj r : D W nazywamy funkcj rozmiaru danych. Def. Funkcj kosztu algorytmu (programu) P przy ustalonych J, D, W, r nazywamy funkcj (cz ±ciow ) T : W 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

63 Zªo»ono± przykªady Problem: obliczanie warto±ci wielomianu. Tj. dla wielomianu p(x) = a n x n + a n 1 x n a 1 x + a 0 R[x] oraz x 0 R, obliczy warto± p(x 0 ) R. 19 / 65

64 Zªo»ono± przykªady Problem: obliczanie warto±ci wielomianu. Tj. dla wielomianu p(x) = a n x n + a n 1 x n a 1 x + a 0 R[x] oraz x 0 R, obliczy warto± p(x 0 ) R. Specykacja: (D, X, f ), gdzie D = {(n, a, x 0 ) : n N, a = (a 0,..., a n ) R n+1, x 0 R}, X = R, f ((n, a, x 0 )) = a n x n 0 + a n 1 x n a 1 x 0 + a / 65

65 Zªo»ono± przykªady Problem: obliczanie warto±ci wielomianu. Tj. dla wielomianu p(x) = a n x n + a n 1 x n a 1 x + a 0 R[x] oraz x 0 R, obliczy warto± p(x 0 ) R. Specykacja: (D, X, f ), gdzie D = {(n, a, x 0 ) : n N, a = (a 0,..., a n ) R n+1, x 0 R}, X = R, f ((n, a, x 0 )) = a n x n 0 + a n 1 x n a 1 x 0 + a 0. Funkcja rozmiaru danych: przyjmujemy W := N, r : D W, r((n, a, x 0 )) = n. 19 / 65

66 Algorytm naiwny: Zªo»ono± przykªady function wielomian(n : Integer; a : array var i, j : Integer; w, m : Real; begin w := 0; for i := 0 to n do begin m := a[i]; for j := 1 to i do m := m x0; w := w + m; end; wielomian := w end; of Real; x0 : Real) : Real; 20 / 65

67 Algorytm naiwny: Zªo»ono± przykªady function wielomian(n : Integer; a : array var i, j : Integer; w, m : Real; begin w := 0; 1 for i := 0 to n do 3 begin m := a[i]; 2 for j := 1 to i do 3 m := m x0; 2 w := w + m; 2 end; wielomian := w 1 end; of Real; x0 : Real) : Real; 20 / 65

68 Algorytm naiwny: Zªo»ono± przykªady function wielomian(n : Integer; a : array var i, j : Integer; w, m : Real; begin w := 0; 1 for i := 0 to n do 3 begin m := a[i]; 2 for j := 1 to i do 3 (i + 1) m := m x0; 2 i w := w + m; 2 end; wielomian := w 1 end; of Real; x0 : Real) : Real; 20 / 65

69 Algorytm naiwny: Zªo»ono± przykªady function wielomian(n : Integer; a : array 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 3 (i + 1) m := m x0; 2 i w := w + m; 2 (n + 1) end; wielomian := w 1 end; of Real; x0 : Real) : Real; 20 / 65

70 Algorytm naiwny: Zªo»ono± przykªady function wielomian(n : Integer; a : array 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 := ni=0 1 to i do 3 (i + 1) m := m ni=0 x0; 2 i w := w + m; 2 (n + 1) end; wielomian := w 1 end; of Real; x0 : Real) : Real; 20 / 65

71 Algorytm naiwny: Zªo»ono± przykªady function wielomian(n : Integer; a : array 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 := ni=0 1 to i do 3 (i + 1) m := m ni=0 x0; 2 i w := w + m; 2 (n + 1) end; wielomian := w 1 end; of Real; x0 : Real) : Real; t((n, a, x0)) = n + 3 n i=0 (i + 1) + 2 n i=0 i = = n + 3 n2 +3n n2 +n = n n / 65

72 Zªo»ono± przykªady Uwaga. Warto± t((n, a, x0)) zale»y tylko od n 21 / 65

73 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 2 n n + 15 (przypomnijmy,»e funkcj rozmiaru danych okre±lili±my wzorem zatem funkcja kosztu jest zadana: r((n, a, x 0 )) = n, T (w) := sup{t((n, a, x 0 )) : (n, a, x 0 ) D, r((n, a, x 0 )) = w }, dla w W = N). 21 / 65

74 Wielomiany usprawnienie Metoda Hornera: n a i x i = (...(a n x + a n 1 )x a 1 )x + a 0. i=0 22 / 65

75 Wielomiany usprawnienie Metoda Hornera: n a i x i = (...(a n x + a n 1 )x a 1 )x + a 0. i=0 function Horner(n : Integer; a : array var i : Integer; w : Real; begin w := a[n]; for i := n 1 downto 0 do w := w x0 + a[i]; Horner := w end; of Real; x0 : Real) : Real; 22 / 65

76 Wielomiany usprawnienie Metoda Hornera: n a i x i = (...(a n x + a n 1 )x a 1 )x + a 0. i=0 function Horner(n : Integer; a : array var i : Integer; w : Real; begin w := a[n]; 1 for i := n 1 downto 0 do 3 w := w x0 + a[i]; 3 Horner := w 1 end; of Real; x0 : Real) : Real; 22 / 65

77 Wielomiany usprawnienie Metoda Hornera: n a i x i = (...(a n x + a n 1 )x a 1 )x + a 0. i=0 function Horner(n : Integer; a : array 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; of Real; x0 : Real) : Real; 22 / 65

78 Wielomiany usprawnienie Metoda Hornera: n a i x i = (...(a n x + a n 1 )x a 1 )x + a 0. i=0 function Horner(n : Integer; a : array 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; of Real; x0 : Real) : Real; T (n) = t((n, a, x0)) = 6n / 65

79 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+, n 0 N n n0 0 cg(n) f (n) }, 23 / 65

80 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+, n 0 N n n0 0 cg(n) f (n) }, O(g(n)) := {f (n) : c R+, n 0 N n n0 0 f (n) cg(n) }, 23 / 65

81 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+, n 0 N n n0 0 cg(n) f (n) }, O(g(n)) := {f (n) : c R+, n 0 N n n0 0 f (n) cg(n) }, Θ(g(n)) := {f (n) : c1,c 2 R +, n 0 N n n0 0 c 1 g(n) f (n) c 2 g(n) }. 23 / 65

82 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+, n 0 N n n0 0 cg(n) f (n) }, O(g(n)) := {f (n) : c R+, n 0 N n n0 0 f (n) cg(n) }, Θ(g(n)) := {f (n) : c1,c 2 R +, n 0 N n n0 0 c 1 g(n) f (n) c 2 g(n) }. Umowa. Zapis f (n) = Ω(g(n)) oznacza,»e f (n) Ω(g(n)) (analogicznie dla O, Θ). 23 / 65

83 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)). 24 / 65

84 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)). 24 / 65

85 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 asymptotycznie dokªadnym oszacowaniem dla f (n) (lub,»e f (n) jest rz du dokªadnie g(n)). 24 / 65

86 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 asymptotycznie dokªadnym oszacowaniem dla 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

87 Asymptotyczna zªo»ono± Najprostsze przykªady. (1) Niech f (n) = 5n 2. Wówczas oczywi±cie 0 5n 2 f (n) 5n 2, zatem f (n) = Θ(n 2 ) (za staªe c 1, c 2, n 0 mo»emy przyj odpowiednio 5, 5, 1 patrz def. zbioru Θ). 25 / 65

88 Asymptotyczna zªo»ono± Najprostsze przykªady. (1) Niech f (n) = 5n 2. Wówczas oczywi±cie 0 5n 2 f (n) 5n 2, zatem f (n) = Θ(n 2 ) (za staªe c 1, c 2, n 0 mo»emy przyj odpowiednio 5, 5, 1 patrz def. zbioru Θ). (2) Niech f (n) = n 2. Wówczas 0 n f (n) f (n) = Ω(n), 25 / 65

89 Asymptotyczna zªo»ono± Najprostsze przykªady. (1) Niech f (n) = 5n 2. Wówczas oczywi±cie 0 5n 2 f (n) 5n 2, zatem f (n) = Θ(n 2 ) (za staªe c 1, c 2, n 0 mo»emy przyj odpowiednio 5, 5, 1 patrz def. zbioru Θ). (2) Niech f (n) = n 2. Wówczas 0 n f (n) f (n) = Ω(n), 0 f (n) n 3 f (n) = O(n 3 ), 25 / 65

90 Asymptotyczna zªo»ono± Najprostsze przykªady. (1) Niech f (n) = 5n 2. Wówczas oczywi±cie 0 5n 2 f (n) 5n 2, zatem f (n) = Θ(n 2 ) (za staªe c 1, c 2, n 0 mo»emy przyj odpowiednio 5, 5, 1 patrz def. zbioru Θ). (2) Niech f (n) = n 2. Wówczas 0 n f (n) f (n) = Ω(n), ale 0 f (n) n 3 f (n) = O(n 3 ), f (n) / Θ(n 3 ), f (n) / Θ(n). 25 / 65

91 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). 26 / 65

92 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) 2 n / Θ(n 2 ), n 2 / Θ(2 n ). 26 / 65

93 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) 2 n / Θ(n 2 ), n 2 / Θ(2 n ). (5) Dla b > 1 i d 0, n d = O(b n ). 26 / 65

94 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) 2 n / Θ(n 2 ), n 2 / Θ(2 n ). (5) Dla b > 1 i d 0, n d = O(b n ). (6) Dla b > 1 i d > 0, log b n = O(n d ). 26 / 65

95 Asymptotyczna zªo»ono± Inne wªasno±ci. 1 f (n) = Ω(f (n)), 27 / 65

96 Asymptotyczna zªo»ono± Inne wªasno±ci. 1 f (n) = Ω(f (n)), 2 f (n) = O(f (n)), 27 / 65

97 Asymptotyczna zªo»ono± Inne wªasno±ci. 1 f (n) = Ω(f (n)), 2 f (n) = O(f (n)), 3 f (n) = Θ(f (n)), 27 / 65

98 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)), 27 / 65

99 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)), 27 / 65

100 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 Ω, Θ). 27 / 65

101 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 Asymptotyczna zªo»ono± Uwaga. Niech f (n) = a d n d + a d 1 n d a 1 n + a 0, a d 0 (tj. f (n) jest wielomianem stopnia d). Wówczas 28 / 65

103 Asymptotyczna zªo»ono± Uwaga. Niech f (n) = a d n d + a d 1 n d a 1 n + a 0, a d 0 (tj. f (n) jest wielomianem stopnia d). Wówczas k d f (n) = O(n k ), 28 / 65

104 Asymptotyczna zªo»ono± Uwaga. Niech f (n) = a d n d + a d 1 n d a 1 n + a 0, a d 0 (tj. f (n) jest wielomianem stopnia d). Wówczas k d f (n) = O(n k ), k d f (n) = Ω(n k ), 28 / 65

105 Asymptotyczna zªo»ono± Uwaga. Niech f (n) = a d n d + a d 1 n d a 1 n + a 0, a d 0 (tj. f (n) jest wielomianem stopnia d). Wówczas k d f (n) = O(n k ), k d f (n) = Ω(n k ), k = d f (n) = Θ(n k ). 28 / 65

106 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 N b dzie funkcj kosztu. 29 / 65

107 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 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). 29 / 65

108 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 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 ma zªo»ono± rz du co najwy»ej g(n). 29 / 65

109 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 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 ma zª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)). 29 / 65

110 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 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 ma zª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 / 65

111 Asymptotyczna zªo»ono± Wró my do rozwa»anych algorytmów. (1) Test pierwszo±ci. 30 / 65

112 Asymptotyczna zªo»ono± Wró my do rozwa»anych algorytmów. (1) Test pierwszo±ci. 12 t(n) 7 n / 65

113 Asymptotyczna zªo»ono± Wró my do rozwa»anych algorytmów. (1) Test pierwszo±ci. 12 t(n) 7 n + 7. Przy trywialnej funkcji rozmiaru danych r(n) = n, mamy T (n) = t(n). 30 / 65

114 Asymptotyczna zªo»ono± Wró my do rozwa»anych algorytmów. (1) Test pierwszo±ci. 12 t(n) 7 n + 7. Przy trywialnej funkcji rozmiaru danych r(n) = n, mamy T (n) = t(n). St d T (n) = O( n), 30 / 65

115 Asymptotyczna zªo»ono± Wró my do rozwa»anych algorytmów. (1) Test pierwszo±ci. 12 t(n) 7 n + 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). 30 / 65

116 Asymptotyczna zªo»ono± Wró my do rozwa»anych algorytmów. (1) Test pierwszo±ci. 12 t(n) 7 n + 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

117 Asymptotyczna zªo»ono± (2) Naiwny algorytm liczenia warto±ci wielomianu. 31 / 65

118 Asymptotyczna zªo»ono± (2) Naiwny algorytm liczenia warto±ci wielomianu. T (n) = 5 2 n n / 65

119 Asymptotyczna zªo»ono± (2) Naiwny algorytm liczenia warto±ci wielomianu. St d T (n) = 5 2 n n T (n) = Θ(n 2 ), wi c algorytm ma zªo»ono± dokªadnie rz du n 2 (wielomianow stopnia 2 lub kwadratow ). 31 / 65

120 Asymptotyczna zªo»ono± (2) Naiwny algorytm liczenia warto±ci wielomianu. St d T (n) = 5 2 n n T (n) = Θ(n 2 ), wi c algorytm ma zªo»ono± dokªadnie rz du n 2 (wielomianow stopnia 2 lub kwadratow ). (3) Algorytm liczenia warto±ci wielomianu metod Hornera. 31 / 65

121 Asymptotyczna zªo»ono± (2) Naiwny algorytm liczenia warto±ci wielomianu. St d T (n) = 5 2 n n T (n) = Θ(n 2 ), wi c algorytm ma zªo»ono± dokªadnie rz du n 2 (wielomianow stopnia 2 lub kwadratow ). (3) Algorytm liczenia warto±ci wielomianu metod Hornera. St d T (n) = 6n + 5. T (n) = Θ(n), wi c algorytm ma zªo»ono± dokªadnie rz du n (liniow ). 31 / 65

122 Asymptotyczna zªo»ono± Zaªó»my,»e komputer I wykonuje 10 6 operacji na sekund, komputer II wykonuje 10 9 operacji na sekund, rozmiar danych: T (n) czas I czas II n n log n n 2 3n 2 n 3 2 n 32 / 65

123 Asymptotyczna zªo»ono± Zaªó»my,»e komputer I wykonuje 10 6 operacji na sekund, komputer II wykonuje 10 9 operacji na sekund, rozmiar danych: T (n) czas I czas II n 0, 1 s. 0, 0001 s. n log n n 2 3n 2 n 3 2 n 32 / 65

124 Asymptotyczna zªo»ono± Zaªó»my,»e komputer I wykonuje 10 6 operacji na sekund, komputer II wykonuje 10 9 operacji na sekund, rozmiar danych: T (n) czas I czas II n 0, 1 s. 0, 0001 s. n log n 1, 6 s. 0, 0016 s. n 2 3n 2 n 3 2 n 32 / 65

125 Asymptotyczna zªo»ono± Zaªó»my,»e komputer I wykonuje 10 6 operacji na sekund, komputer II wykonuje 10 9 operacji na sekund, rozmiar danych: T (n) czas I czas II n 0, 1 s. 0, 0001 s. n log n 1, 6 s. 0, 0016 s. n 2 2 h. 45 min. 10 s. 3n 2 n 3 2 n 32 / 65

126 Asymptotyczna zªo»ono± Zaªó»my,»e komputer I wykonuje 10 6 operacji na sekund, komputer II wykonuje 10 9 operacji na sekund, rozmiar danych: T (n) czas I czas II n 0, 1 s. 0, 0001 s. n log n 1, 6 s. 0, 0016 s. n 2 2 h. 45 min. 10 s. 3n 2 8 h. 15 min. 30 s. n 3 2 n 32 / 65

127 Asymptotyczna zªo»ono± Zaªó»my,»e komputer I wykonuje 10 6 operacji na sekund, komputer II wykonuje 10 9 operacji na sekund, rozmiar danych: T (n) czas I czas II n 0, 1 s. 0, 0001 s. n log n 1, 6 s. 0, 0016 s. n 2 2 h. 45 min. 10 s. 3n 2 8 h. 15 min. 30 s. n 3 32 lata 11,5 dnia 2 n 32 / 65

128 Asymptotyczna zªo»ono± Zaªó»my,»e komputer I wykonuje 10 6 operacji na sekund, komputer II wykonuje 10 9 operacji na sekund, rozmiar danych: T (n) czas I czas II n 0, 1 s. 0, 0001 s. n log n 1, 6 s. 0, 0016 s. n 2 2 h. 45 min. 10 s. 3n 2 8 h. 15 min. 30 s. n 3 32 lata 11,5 dnia 2 n 3, lat 3, lat 32 / 65

129 Asymptotyczna zªo»ono± Zaªó»my,»e komputer I wykonuje 10 6 operacji na sekund, komputer II wykonuje 10 9 operacji na sekund, rozmiar danych: T (n) czas I czas II n 0, 1 s. 0, 0001 s. n log n 1, 6 s. 0, 0016 s. n 2 2 h. 45 min. 10 s. 3n 2 8 h. 15 min. 30 s. n 3 32 lata 11,5 dnia 2 n 3, lat 3, lat Wiek Wszech±wiata: lat! 32 / 65

130 Sortowanie Sortowanie = ustawienie obiektów ustalonego typu (np. liczb, ci gów znaków...) wedªug ustalonego porz dku (np.,, porz dek leksykograczny...). 33 / 65

131 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 / 65

132 Sortowanie przez wstawianie / 65

133 Sortowanie przez wstawianie / 65

134 Sortowanie przez wstawianie / 65

135 Sortowanie przez wstawianie / 65

136 Sortowanie przez wstawianie / 65

137 Sortowanie przez wstawianie / 65

138 Sortowanie przez wstawianie / 65

139 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 dkowana tak,»e A[1] A[2]... A[n]. 35 / 65

140 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 dkowana tak,»e A[1] A[2]... A[n]. Analiza zªo»ono±ci zbiór danych wej±ciowych: D = {(n, A) : n N, A R n }, 35 / 65

141 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 dkowana tak,»e A[1] A[2]... A[n]. Analiza zªo»ono±ci zbiór danych wej±ciowych: D = {(n, A) : n N, A R n }, zbiór rozmiarów W = N, 35 / 65

142 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 dkowana tak,»e A[1] A[2]... A[n]. Analiza zªo»ono±ci zbiór danych wej±ciowych: D = {(n, A) : n N, A R n }, zbiór rozmiarów W = N, funkcja rozmiaru r : D W, r((n, A)) = n. 35 / 65

143 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 dkowana tak,»e A[1] A[2]... A[n]. 36 / 65

144 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 dkowana tak,»e A[1] A[2]... A[n]. 1 begin 2 for j := 2 to n do 3 begin 4 klucz := A[j]; 5 i := j 1; 6 while (i > 0) and (A[i] > klucz) do 7 begin 8 A[i + 1] := A[i]; 9 i := i 1 10 end; 11 A[i + 1] := klucz 12 end 13 end 36 / 65

145 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 dkowana 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 7 begin 8 A[i + 1] := A[i]; 9 i := i 1 10 end; 11 A[i + 1] := klucz n 1 12 end 13 end 36 / 65

146 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 dkowana 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] > nj=2 klucz) do (t j + 1) 7 begin 8 A[i + 1] := nj=2 A[i]; t j 9 i := i nj=2 1 t j 10 end; 11 A[i + 1] := klucz n 1 12 end 13 end t j = liczba wykona«ciaªa wewn trznej p tli dla j {2,..., n}. 36 / 65

147 Sortowanie przez wstawianie Peªna funkcja kosztu: n t((n, A)) = (4n 3) + 2 t j + n n (t j + 1) = (5n 4) + 3 (zale»y od A!). t j j=2 j=2 j=2 37 / 65

148 Sortowanie przez wstawianie Peªna funkcja kosztu: n t((n, A)) = (4n 3) + 2 t j + n n (t j + 1) = (5n 4) + 3 (zale»y od A!). Przypadek optymistyczny: A posortowana t j j=2 j=2 j=2 37 / 65

149 Sortowanie przez wstawianie Peªna funkcja kosztu: n t((n, A)) = (4n 3) + 2 t j + n n (t j + 1) = (5n 4) + 3 (zale»y od A!). j=2 j=2 Przypadek optymistyczny: A posortowana t j = 0 t j j=2 37 / 65

150 Sortowanie przez wstawianie Peªna funkcja kosztu: n t((n, A)) = (4n 3) + 2 t j + n n (t j + 1) = (5n 4) + 3 (zale»y od A!). j=2 j=2 Przypadek optymistyczny: A posortowana t j = 0 t((n, A)) = 5n 4 = Θ(n). t j j=2 37 / 65

151 Sortowanie przez wstawianie Peªna funkcja kosztu: n t((n, A)) = (4n 3) + 2 t j + n n (t j + 1) = (5n 4) + 3 (zale»y od A!). j=2 j=2 Przypadek optymistyczny: A posortowana t j = 0 t((n, A)) = 5n 4 = Θ(n). Przypadek pesymistyczny: A posortowana odwrotnie t j j=2 37 / 65

152 Sortowanie przez wstawianie Peªna funkcja kosztu: n t((n, A)) = (4n 3) + 2 t j + n n (t j + 1) = (5n 4) + 3 (zale»y od A!). j=2 j=2 Przypadek optymistyczny: A posortowana t j = 0 t((n, A)) = 5n 4 = Θ(n). Przypadek pesymistyczny: A posortowana odwrotnie t j = j 1 t j j=2 37 / 65

153 Sortowanie przez wstawianie Peªna funkcja kosztu: n t((n, A)) = (4n 3) + 2 t j + n n (t j + 1) = (5n 4) + 3 (zale»y od A!). j=2 j=2 Przypadek optymistyczny: A posortowana t j = 0 t((n, A)) = 5n 4 = Θ(n). Przypadek pesymistyczny: A posortowana odwrotnie t j = j 1 t((n, A)) = 5n n(n 1) 2 = 3 2 n n 4 = Θ(n2 ). t j j=2 37 / 65

154 Sortowanie przez wstawianie Peªna funkcja kosztu: n t((n, A)) = (4n 3) + 2 t j + n n (t j + 1) = (5n 4) + 3 (zale»y od A!). j=2 j=2 Przypadek optymistyczny: A posortowana t j = 0 t((n, A)) = 5n 4 = Θ(n). Przypadek pesymistyczny: A posortowana odwrotnie t j = j 1 t((n, A)) = 5n n(n 1) 2 = 3 2 n n 4 = Θ(n2 ). Funkcja kosztu: T (n) = 3 2 n n 4 = Θ(n2 ). t j j=2 37 / 65

155 Sortowanie przez wstawianie Problem: czy przypadek pesymistyczny jest bardzo oddalony od przypadku ±redniego? 38 / 65

156 Sortowanie przez wstawianie Problem: czy przypadek pesymistyczny jest bardzo oddalony od przypadku ±redniego? Przypadek ±redni: A jest tablic wygenerowan losowo 38 / 65

157 Sortowanie przez wstawianie Problem: czy przypadek pesymistyczny jest bardzo oddalony od przypadku ±redniego? Przypadek ±redni: A jest tablic wygenerowan losowo w podtablicy A[1..j 1] ±rednio poªowa elementów jest wi ksza ni» A[j], 38 / 65

158 Sortowanie przez wstawianie Problem: czy przypadek pesymistyczny jest bardzo oddalony od przypadku ±redniego? Przypadek ±redni: A jest tablic wygenerowan losowo w podtablicy A[1..j 1] ±rednio poªowa elementów jest wi ksza ni» A[j], t j j 2, 38 / 65

159 Sortowanie przez wstawianie Problem: czy przypadek pesymistyczny jest bardzo oddalony od przypadku ±redniego? Przypadek ±redni: A jest tablic wygenerowan losowo w podtablicy A[1..j 1] ±rednio poªowa elementów jest wi ksza ni» A[j], t j j 2, t((n, A)) 5n n2 +n 2 4 = 3 4 n n 11 2 = Θ(n2 ). 38 / 65

160 Sortowanie przez wstawianie Problem: czy przypadek pesymistyczny jest bardzo oddalony od przypadku ±redniego? Przypadek ±redni: A jest tablic wygenerowan losowo w podtablicy A[1..j 1] ±rednio poªowa elementów jest wi ksza ni» A[j], t j j 2, t((n, A)) 5n n2 +n 2 4 = 3 4 n n 11 2 = Θ(n2 ). Odpowied¹: nie bardzo! 38 / 65

161 Sortowanie Inne algorytmy sortowania: sortowanie przez wybieranie Θ(n 2 ), 39 / 65

162 Sortowanie Inne algorytmy sortowania: sortowanie przez wybieranie Θ(n 2 ), sortowanie b belkowe Θ(n 2 ), 39 / 65

163 Sortowanie Inne algorytmy sortowania: sortowanie przez wybieranie Θ(n 2 ), sortowanie b belkowe Θ(n 2 ), sortowanie szybkie (quicksort) Θ(n 2 ), Θ(n log n), 39 / 65

164 Sortowanie Inne algorytmy sortowania: sortowanie przez wybieranie Θ(n 2 ), sortowanie b belkowe Θ(n 2 ), sortowanie szybkie (quicksort) Θ(n 2 ), Θ(n log n), sortowanie przez kopcowanie (kopcowe, stogowe, heapsort) Θ(n log n), 39 / 65

165 Sortowanie Inne algorytmy sortowania: sortowanie przez wybieranie Θ(n 2 ), sortowanie b belkowe Θ(n 2 ), sortowanie szybkie (quicksort) Θ(n 2 ), Θ(n log n), sortowanie przez kopcowanie (kopcowe, stogowe, heapsort) Θ(n log n), sortowanie przez scalanie (mergesort) Θ(n log n), 39 / 65

166 Sortowanie Inne algorytmy sortowania: sortowanie przez wybieranie Θ(n 2 ), sortowanie b belkowe Θ(n 2 ), sortowanie szybkie (quicksort) Θ(n 2 ), Θ(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 pewnych zaªo»eniach). 39 / 65

167 Wska¹niki Przypomnienie. Wa»niejsze typy danych w Pascalu 40 / 65

168 Wska¹niki Przypomnienie. Wa»niejsze typy danych w Pascalu proste (jak ShortInt, Byte, Word, Integer, LongInt, Boolean, Char, Real, Double...), 40 / 65

169 Wska¹niki Przypomnienie. Wa»niejsze typy danych w Pascalu proste (jak ShortInt, Byte, Word, Integer, LongInt, Boolean, Char, Real, Double...), ªa«cuchowe (string), 40 / 65

170 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,...). 40 / 65

171 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 / 65

172 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. 41 / 65

173 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ól end; Ka»da z deklaracji pól ma posta lista-nazw-pól : opis-typu; 41 / 65

174 Przykªad. Wska¹niki type dane = record wiek : Integer; nazwisko : string[30] end; 42 / 65

175 Przykªad. Wska¹niki type dane = record wiek : Integer; nazwisko : string[30] end; Mo»emy zadeklarowa zmienn zdeniowanego typu dane: var mojedane : dane; 42 / 65

176 Przykªad. Wska¹niki 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 / 65

177 Wska¹niki W Pascalu mamy te» zmienne dynamiczne = reprezentuj ce obiekty, dla których pami jest przydzielana i zwalniana na okre±lone» danie (w trakcie wykonania programu). 43 / 65

178 Wska¹niki W Pascalu mamy te» zmienne dynamiczne = reprezentuj ce obiekty, dla których pami jest przydzielana i zwalniana na okre±lone» danie (w trakcie wykonania programu). Zmienne dynamiczne nie posiadaj identykatorów, 43 / 65

179 Wska¹niki W Pascalu mamy te» zmienne dynamiczne = reprezentuj ce obiekty, dla których pami jest przydzielana i zwalniana na okre±lone» danie (w trakcie wykonania programu). Zmienne dynamiczne nie posiadaj identykatorów, odwoªanie do nich za pomoc wska¹nika, 43 / 65

180 Wska¹niki W Pascalu mamy te» zmienne dynamiczne = reprezentuj ce obiekty, dla których pami jest przydzielana i zwalniana na okre±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 typu wska¹nikowego, 43 / 65

181 Wska¹niki W Pascalu mamy te» zmienne dynamiczne = reprezentuj ce obiekty, dla których pami jest przydzielana i zwalniana na okre±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 typu wska¹nikowego, zastosowanie zmiennych dynamicznych wymaga zdeniowania odpowiednich typów wska¹nikowych. 43 / 65

182 Wska¹niki Denicja typu wska¹nikowego: type identykator-typu = ^ identykator-typu-bazowego; identykator-typu-bazowego = typ, którego dane b d wskazywane przez zmienne typu identykator-typu. 44 / 65

183 Wska¹niki Denicja typu wska¹nikowego: type identykator-typu = ^ identykator-typu-bazowego; identykator-typu-bazowego = typ, którego dane b d wskazywane przez zmienne typu identykator-typu. identykator-typu-bazowego mo»e, ale nie musi by wcze±niej okre±lony, 44 / 65

184 Wska¹niki Denicja typu wska¹nikowego: type identykator-typu = ^ identykator-typu-bazowego; identykator-typu-bazowego = typ, którego dane b d wskazywane przez zmienne typu identykator-typu. identykator-typu-bazowego mo»e, ale nie musi by wcze±niej okre±lony, je»eli nie jest wcze±niej okre±lony, powinien zosta okre±lony w tej samej klauzuli type. 44 / 65

185 Wska¹niki Denicja typu wska¹nikowego: type identykator-typu = ^ identykator-typu-bazowego; identykator-typu-bazowego = typ, którego dane b d wskazywane przez zmienne typu identykator-typu. identykator-typu-bazowego mo»e, ale nie musi by wcze±niej okre±lony, je»eli nie jest wcze±niej okre±lony, powinien zosta okre±lony w tej samej klauzuli type. Uwaga. Sªowo kluczowe nil = staªa typu wska¹nikowego nie okre±laj ca»adnego adresu (inaczej: okre±laj ca adres pusty). 44 / 65

186 Przykªad. Wska¹niki type typ_wskaz = ^moj_typ; moj_typ = record liczba : Integer; napis : string[30] end; 45 / 65

187 Przykªad. Wska¹niki 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 programie przypisywane adresy pami ci danych typu moj_typ. 45 / 65

188 Przykªad. Wska¹niki 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 programie przypisywane adresy pami ci danych typu moj_typ. U»ycie: wskaz^ = zmienna wskazywana przez zmienn wska¹nikow wskaz = rekord typu moj_typ (o adresie okre±lonym przez wskaz). 45 / 65

189 Wska¹niki Dwa 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; 46 / 65

190 Wska¹niki Dwa 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; 46 / 65

191 Wska¹niki Dwa 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 / 65

192 Dynamiczny przydziaª pami ci Tworzenie zmiennej dynamicznej (zmiennej wskazywanej) i ustalenie zmiennej wska¹nikowej wskazuj cej na ni : New(zmienna-wskaznikowa); 47 / 65

193 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 blok pami ci, którego rozmiar = rozmiar typu, z którym zwi zana jest zmienna-wska¹nikowa, 47 / 65

194 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 blok pami ci, którego rozmiar = rozmiar typu, z którym zwi zana jest zmienna-wska¹nikowa, je»eli brakuje pami ci, wyst pi bª d, 47 / 65

195 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 blok pami ci, którego rozmiar = rozmiar typu, z którym zwi zana jest zmienna-wska¹nikowa, je»eli brakuje pami ci, wyst pi bª d, przydzielenie bloku o konkretnym rozmiarze: GetMem(zmienna-wskaznikowa,rozmiar); 47 / 65

196 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 blok pami ci, którego rozmiar = rozmiar typu, z którym zwi zana jest zmienna-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 / 65

Matematyka dyskretna dla informatyków

Matematyka dyskretna dla informatyków UNIWERSYTET IM. ADAMA MICKIEWICZA W POZNANIU Jerzy Jaworski, Zbigniew Palka, Jerzy Szyma«ski Matematyka dyskretna dla informatyków uzupeænienia Pozna«007 A Notacja asymptotyczna Badaj c du»e obiekty kombinatoryczne

Bardziej szczegółowo

Listy i operacje pytania

Listy i operacje pytania Listy i operacje pytania Iwona Polak iwona.polak@us.edu.pl Uniwersytet l ski Instytut Informatyki pa¹dziernika 07 Który atrybut NIE wyst puje jako atrybut elementów listy? klucz elementu (key) wska¹nik

Bardziej szczegółowo

Algorytmy i Struktury Danych.

Algorytmy i Struktury Danych. Algorytmy i Struktury Danych. Organizacja wykładu. Problem Sortowania. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 1 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury

Bardziej szczegółowo

Algorytmy zwiazane z gramatykami bezkontekstowymi

Algorytmy zwiazane z gramatykami bezkontekstowymi Algorytmy zwiazane z gramatykami bezkontekstowymi Rozpoznawanie j zyków bezkontekstowych Problem rozpoznawania j zyka L polega na sprawdzaniu przynale»no±ci sªowa wej±ciowego x do L. Zakªadamy,»e j zyk

Bardziej szczegółowo

Lab. 02: Algorytm Schrage

Lab. 02: Algorytm Schrage Lab. 02: Algorytm Schrage Andrzej Gnatowski 5 kwietnia 2015 1 Opis zadania Celem zadania laboratoryjnego jest zapoznanie si z jednym z przybli»onych algorytmów sªu» cych do szukania rozwi za«znanego z

Bardziej szczegółowo

DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0

DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0 Uwaga: DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0 1. Zostały pominięte diagramy: CYFRA, CYFRA SZESNASTKOWA, ZNAK i LITERA. Nie została uwzględniona możliwość posługiwania się komentarzami. 2. Brakuje

Bardziej szczegółowo

Relacj binarn okre±lon w zbiorze X nazywamy podzbiór ϱ X X.

Relacj binarn okre±lon w zbiorze X nazywamy podzbiór ϱ X X. Relacje 1 Relacj n-argumentow nazywamy podzbiór ϱ X 1 X 2... X n. Je±li ϱ X Y jest relacj dwuargumentow (binarn ), to zamiast (x, y) ϱ piszemy xϱy. Relacj binarn okre±lon w zbiorze X nazywamy podzbiór

Bardziej szczegółowo

JAO - J zyki, Automaty i Obliczenia - Wykªad 1. JAO - J zyki, Automaty i Obliczenia - Wykªad 1

JAO - J zyki, Automaty i Obliczenia - Wykªad 1. JAO - J zyki, Automaty i Obliczenia - Wykªad 1 J zyki formalne i operacje na j zykach J zyki formalne s abstrakcyjnie zbiorami sªów nad alfabetem sko«czonym Σ. J zyk formalny L to opis pewnego problemu decyzyjnego: sªowa to kody instancji (wej±cia)

Bardziej szczegółowo

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu Programowanie strukturalne Opis ogólny programu w Turbo Pascalu STRUKTURA PROGRAMU W TURBO PASCALU Program nazwa; } nagłówek programu uses nazwy modułów; } blok deklaracji modułów const } blok deklaracji

Bardziej szczegółowo

Caªkowanie numeryczne - porównanie skuteczno±ci metody prostokatów, metody trapezów oraz metody Simpsona

Caªkowanie numeryczne - porównanie skuteczno±ci metody prostokatów, metody trapezów oraz metody Simpsona Akademia Górniczo-Hutnicza im. Stanisªawa Staszica w Krakowie Wydziaª Fizyki i Informatyki Stosowanej Krzysztof Grz dziel kierunek studiów: informatyka stosowana Caªkowanie numeryczne - porównanie skuteczno±ci

Bardziej szczegółowo

Twierdzenie Wainera. Marek Czarnecki. Warszawa, 3 lipca Wydziaª Filozoi i Socjologii Uniwersytet Warszawski

Twierdzenie Wainera. Marek Czarnecki. Warszawa, 3 lipca Wydziaª Filozoi i Socjologii Uniwersytet Warszawski Twierdzenie Wainera Marek Czarnecki Wydziaª Filozoi i Socjologii Uniwersytet Warszawski Wydziaª Matematyki, Informatyki i Mechaniki Uniwersytet Warszawski Warszawa, 3 lipca 2009 Motywacje Dla dowolnej

Bardziej szczegółowo

Metody dowodzenia twierdze«

Metody dowodzenia twierdze« Metody dowodzenia twierdze«1 Metoda indukcji matematycznej Je±li T (n) jest form zdaniow okre±lon w zbiorze liczb naturalnych, to prawdziwe jest zdanie (T (0) n N (T (n) T (n + 1))) n N T (n). 2 W przypadku

Bardziej szczegółowo

ALGORYTMIKA Wprowadzenie do algorytmów

ALGORYTMIKA Wprowadzenie do algorytmów ALGORYTMIKA Wprowadzenie do algorytmów Popularne denicje algorytmu przepis opisuj cy krok po kroku rozwi zanie problemu lub osi gni cie jakiego± celu. (M. Sysªo, Algorytmy, ±ci±lejszej denicji w ksi»ce

Bardziej szczegółowo

Skrypt do Algorytmów i Struktur Danych

Skrypt do Algorytmów i Struktur Danych Skrypt do Algorytmów i Struktur Danych K. Kleczkowski M. Pietrek 14 marca 2018 2 Spis tre±ci I Algorytmy 5 1. Algorytmy sortowania 7 1.1. Wprowadzenie...................................... 7 1.2. Sortowanie

Bardziej szczegółowo

Język programowania PASCAL

Język programowania PASCAL Język programowania PASCAL (wersja podstawowa - standard) Literatura: dowolny podręcznik do języka PASCAL (na laboratoriach Borland) Iglewski, Madey, Matwin PASCAL STANDARD, PASCAL 360 Marciniak TURBO

Bardziej szczegółowo

Analiza algorytmów zadania podstawowe

Analiza algorytmów zadania podstawowe Analiza algorytmów zadania podstawowe Zadanie 1 Zliczanie Zliczaj(n) 1 r 0 2 for i 1 to n 1 3 do for j i + 1 to n 4 do for k 1 to j 5 do r r + 1 6 return r 0 Jaka wartość zostanie zwrócona przez powyższą

Bardziej szczegółowo

Zadania z kolokwiów ze Wst pu do Informatyki. Semestr II.

Zadania z kolokwiów ze Wst pu do Informatyki. Semestr II. Zadania z kolokwiów ze Wst pu do Informatyki. Semestr II. Poni»sze zadania s wyborem zada«z kolokwiów ze Wst pu do Informatyki jakie przeprowadziªem w ci gu ostatnich lat. Marek Zawadowski Zadanie 1 Napisz

Bardziej szczegółowo

Sortowanie przez wstawianie

Sortowanie przez wstawianie Sortowanie przez wstawianie Wykład 1 26 lutego 2019 (Wykład 1) Sortowanie przez wstawianie 26 lutego 2019 1 / 25 Outline 1 Literatura 2 Algorytm 3 Problem sortowania Pseudokod 4 Sortowanie przez wstawianie

Bardziej szczegółowo

Programowanie funkcyjne. Wykªad 13

Programowanie funkcyjne. Wykªad 13 Programowanie funkcyjne. Wykªad 13 Siªa wyrazu rachunku lambda Zdzisªaw Spªawski Zdzisªaw Spªawski: Programowanie funkcyjne. Wykªad 13, Siªa wyrazu rachunku lambda 1 Wst p Warto±ci logiczne Liczby naturalne

Bardziej szczegółowo

Algorytmy i struktury danych

Algorytmy i struktury danych Algorytmy i struktury danych Wykªad III wyszukiwanie c.d. Paweª Rembelski PJWSTK 16 pa¹dziernika 2009 Paweª Rembelski (PJWSTK) Algorytmy i struktury danych 16 pa¹dziernika 2009 1 / 46 1 Podziaª wzgl dem

Bardziej szczegółowo

Algorytmy i struktury danych

Algorytmy i struktury danych Algorytmy i struktury danych Cz ± druga Prowadz cy: dr Andrzej Mróz, Wydziaª Matematyki i Informatyki, Uniwersytet Mikoªaja Kopernika 1 / 82 Rekurencja Procedura (funkcja) rekurencyjna wywoªuje sam siebie.

Bardziej szczegółowo

Wykład 2. Poprawność algorytmów

Wykład 2. Poprawność algorytmów Wykład 2 Poprawność algorytmów 1 Przegląd Ø Poprawność algorytmów Ø Podstawy matematyczne: Przyrost funkcji i notacje asymptotyczne Sumowanie szeregów Indukcja matematyczna 2 Poprawność algorytmów Ø Algorytm

Bardziej szczegółowo

Wykªad 4. Funkcje wielu zmiennych.

Wykªad 4. Funkcje wielu zmiennych. Wykªad jest prowadzony w oparciu o podr cznik Analiza matematyczna 2. Denicje, twierdzenia, wzory M. Gewerta i Z. Skoczylasa. Wykªad 4. Funkcje wielu zmiennych. Zbiory na pªaszczy¹nie i w przestrzeni.

Bardziej szczegółowo

Wstęp do programowania. Różne różności

Wstęp do programowania. Różne różności Wstęp do programowania Różne różności Typy danych Typ danych określa dwie rzeczy: Jak wartości danego typu są określane w pamięci Jakie operacje są dozwolone na obiektach danego typu 2 Rodzaje typów Proste

Bardziej szczegółowo

Wyszukiwanie. Algorytmy i Struktury Danych. (c) Marcin Sydow. Dziel i rz d¹. Wyszukiwanie. Statystyki pozycyjne. Podsumowanie

Wyszukiwanie. Algorytmy i Struktury Danych. (c) Marcin Sydow. Dziel i rz d¹. Wyszukiwanie. Statystyki pozycyjne. Podsumowanie Zawarto± tego wykªadu: reguªa dziel i rz d¹ wyszukiwanie algorytm wyszukiwania binarnego statystyki 2. najmniejsza warto± w ci gu (algorytm turniejowy - idea) algorytm (wyszukiwanie k-tej statystyki j)

Bardziej szczegółowo

Algorytmy i struktury danych

Algorytmy i struktury danych Algorytmy i struktury danych Wykªad II wyszukiwanie Paweª Rembelski PJWSTK 4 pa¹dziernika 2009 Paweª Rembelski (PJWSTK) Algorytmy i struktury danych 4 pa¹dziernika 2009 1 / 49 1 Wyszukanie wskazanego elementu

Bardziej szczegółowo

Rekurencja. Algorytmy i Struktury Danych. (c) Marcin Sydow. Wst p. Fibonacci. Liniowe 2. rz du. Wie»e Hanoi. Wa»ne 3 przypadki

Rekurencja. Algorytmy i Struktury Danych. (c) Marcin Sydow. Wst p. Fibonacci. Liniowe 2. rz du. Wie»e Hanoi. Wa»ne 3 przypadki Rekurencja Zawarto± wykªadu: Wprowadzenie: czym jest rekurencja ci g ego Przykªad: liniowe równania rekurencyjne 2. Przykªad: zagadka wie»e Hanoi 3 cz sto spotykane rekurencyjne schematy równa« Rekurencja

Bardziej szczegółowo

Matematyka wykªad 1. Macierze (1) Andrzej Torój. 17 wrze±nia 2011. Wy»sza Szkoªa Zarz dzania i Prawa im. H. Chodkowskiej

Matematyka wykªad 1. Macierze (1) Andrzej Torój. 17 wrze±nia 2011. Wy»sza Szkoªa Zarz dzania i Prawa im. H. Chodkowskiej Matematyka wykªad 1 Macierze (1) Andrzej Torój Wy»sza Szkoªa Zarz dzania i Prawa im. H. Chodkowskiej 17 wrze±nia 2011 Plan wykªadu 1 2 3 4 5 Plan prezentacji 1 2 3 4 5 Kontakt moja strona internetowa:

Bardziej szczegółowo

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15 ARYTMETYKA MODULARNA Grzegorz Szkibiel Wiosna 2014/15 Spis tre±ci 1 Denicja kongruencji i jej podstawowe wªasno±ci 3 2 Systemy pozycyjne 8 3 Elementy odwrotne 12 4 Pewne zastosowania elementów odwrotnych

Bardziej szczegółowo

Zaliczenie. Egzamin. lub. Wykład. Zaliczenie. Ćwiczenie. 3 zadania. Projekty. Ocena. Na ocenę

Zaliczenie. Egzamin. lub. Wykład. Zaliczenie. Ćwiczenie. 3 zadania. Projekty. Ocena. Na ocenę Zaliczenie Egzamin Ocena lub Zerówka Wykład z Zaliczenie Ocena Ćwiczenie Projekty 3 zadania Na ocenę Sylabus O http://wmii.uwm.edu.pl/~jakula/sylabus_23 17N1-ALISTD_PL.pdf JAK? CO? ILE? Polecane Cormen

Bardziej szczegółowo

Metody numeryczne. Wst p do metod numerycznych. Dawid Rasaªa. January 9, 2012. Dawid Rasaªa Metody numeryczne 1 / 9

Metody numeryczne. Wst p do metod numerycznych. Dawid Rasaªa. January 9, 2012. Dawid Rasaªa Metody numeryczne 1 / 9 Metody numeryczne Wst p do metod numerycznych Dawid Rasaªa January 9, 2012 Dawid Rasaªa Metody numeryczne 1 / 9 Metody numeryczne Czym s metody numeryczne? Istota metod numerycznych Metody numeryczne s

Bardziej szczegółowo

Podstawy Informatyki. Sprawność algorytmów

Podstawy Informatyki. Sprawność algorytmów Podstawy Informatyki Sprawność algorytmów Sprawność algorytmów Kryteria oceny oszczędności Miara złożoności rozmiaru pamięci (złożoność pamięciowa): Liczba zmiennych + liczba i rozmiar struktur danych

Bardziej szczegółowo

1. Analiza algorytmów przypomnienie

1. Analiza algorytmów przypomnienie 1. Analiza algorytmów przypomnienie T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein Wprowadzenie do algorytmów, rozdziały 1-4 Wydawnictwa naukowo-techniczne (2004) Jak mierzyć efektywność algorytmu?

Bardziej szczegółowo

1. Wprowadzenie do C/C++

1. Wprowadzenie do C/C++ Podstawy Programowania - Roman Grundkiewicz - 013Z Zaj cia 1 1 rodowisko Dev-C++ 1. Wprowadzenie do C/C++ Uruchomienie ±rodowiska: Start Programs Developments Dev-C++. Nowy projekt: File New Project lub

Bardziej szczegółowo

Metody numeryczne i statystyka dla in»ynierów

Metody numeryczne i statystyka dla in»ynierów Kierunek: Automatyka i Robotyka, II rok Wprowadzenie PWSZ Gªogów, 2009 Plan wykªadów Wprowadzenie, podanie zagadnie«, poj cie metody numerycznej i algorytmu numerycznego, obszar zainteresowa«i stosowalno±ci

Bardziej szczegółowo

1. Wprowadzenie do C/C++

1. Wprowadzenie do C/C++ Podstawy Programowania :: Roman Grundkiewicz :: 014 Zaj cia 1 1 rodowisko Dev-C++ 1. Wprowadzenie do C/C++ Uruchomienie ±rodowiska: Start Programs Developments Dev-C++. Nowy projekt: File New Project lub

Bardziej szczegółowo

i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski 5 kwietnia 2017

i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski 5 kwietnia 2017 i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski Uniwersytet Šódzki, Wydziaª Matematyki i Informatyki UŠ piotr@fulmanski.pl http://fulmanski.pl/zajecia/prezentacje/festiwalnauki2017/festiwal_wmii_2017_

Bardziej szczegółowo

Wprowadzenie do złożoności obliczeniowej

Wprowadzenie do złożoności obliczeniowej problemów Katedra Informatyki Politechniki Świętokrzyskiej Kielce, 16 stycznia 2007 problemów Plan wykładu 1 2 algorytmów 3 4 5 6 problemów problemów Plan wykładu 1 2 algorytmów 3 4 5 6 problemów problemów

Bardziej szczegółowo

ALGORYTMY SORTOWANIA DANYCH

ALGORYTMY SORTOWANIA DANYCH ALGORYTMY SORTOWANIA DANYCH W zagadnieniu sortowania danych rozpatrywa b dziemy n liczb caªkowitych, b d cych pierwotnie w losowej kolejno±ci, które nale»y uporz dkowa nierosn co. Oczywi±cie sortowa mo»emy

Bardziej szczegółowo

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe Podstawy programowania Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe 1 I. Składnia Składnia programu Program nazwa; Uses biblioteki; Var deklaracje zmiennych;

Bardziej szczegółowo

1 Bª dy i arytmetyka zmiennopozycyjna

1 Bª dy i arytmetyka zmiennopozycyjna 1 Bª dy i arytmetyka zmiennopozycyjna Liczby w pami ci komputera przedstawiamy w ukªadzie dwójkowym w postaci zmiennopozycyjnej Oznacza to,»e s one postaci ±m c, 01 m < 1, c min c c max, (1) gdzie m nazywamy

Bardziej szczegółowo

Ÿ1 Oznaczenia, poj cia wst pne

Ÿ1 Oznaczenia, poj cia wst pne Ÿ1 Oznaczenia, poj cia wst pne Symbol sumy, j, k Z, j k: k x i = x j + x j+1 + + x k. i=j Przykªad 1.1. Oblicz 5 i=1 2i. Odpowied¹ 1.1. 5 i=1 2i = 2 1 + 2 2 + 2 3 + 2 4 + 2 5 = 2 + 4 + 8 + 16 + 32 = 62.

Bardziej szczegółowo

Macierze i Wyznaczniki

Macierze i Wyznaczniki Macierze i Wyznaczniki Kilka wzorów i informacji pomocniczych: Denicja 1. Tablic nast puj cej postaci a 11 a 12... a 1n a 21 a 22... a 2n A =... a m1 a m2... a mn nazywamy macierz o m wierszach i n kolumnach,

Bardziej szczegółowo

Podstawy matematyki dla informatyków

Podstawy matematyki dla informatyków Podstawy matematyki dla informatyków Wykªad 6 10 listopada 2011 W poprzednim odcinku... Zbiory A i B s równoliczne (tej samej mocy ), gdy istnieje bijekcja f : A 1 1 B. Piszemy A B lub A = B. na Moc zbioru

Bardziej szczegółowo

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy. PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy. 1. Instrukcję case t of... w przedstawionym fragmencie programu moŝna zastąpić: var t : integer; write( Podaj

Bardziej szczegółowo

1 0 Je»eli wybierzemy baz A = ((1, 1), (2, 1)) to M(f) A A =. 0 2 Daje to znacznie lepszy opis endomorzmu f.

1 0 Je»eli wybierzemy baz A = ((1, 1), (2, 1)) to M(f) A A =. 0 2 Daje to znacznie lepszy opis endomorzmu f. GAL II 2012-2013 A Strojnowski str1 Wykªad 1 Ten semestr rozpoczniemy badaniem endomorzmów sko«czenie wymiarowych przestrzeni liniowych Denicja 11 Niech V b dzie przestrzeni liniow nad ciaªem K 1) Przeksztaªceniem

Bardziej szczegółowo

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++ Programowanie Wstęp p do programowania Klasa 3 Lekcja 9 PASCAL & C++ Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany w postaci programu

Bardziej szczegółowo

Rekurencyjne struktury danych

Rekurencyjne struktury danych Andrzej Jastrz bski Akademia ETI Dynamiczny przydziaª pami ci Pami, która jest przydzielana na pocz tku dziaªania procesu to: pami programu czyli instrukcje programu pami statyczna zwi zana ze zmiennymi

Bardziej szczegółowo

Uniwersytet Warszawski Wydziaª Matematyki, Informatyki i Mechaniki

Uniwersytet Warszawski Wydziaª Matematyki, Informatyki i Mechaniki Imi i nazwisko:... Nr indeksu:... Uniwersytet Warszawski Wydziaª Matematyki, Informatyki i Mechaniki Egzamin wst pny na studia II stopnia na kierunku INFORMATYKA Test próbny 19 lutego 2010 roku W ka»dym

Bardziej szczegółowo

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15 ARYTMETYKA MODULARNA Grzegorz Szkibiel Wiosna 2014/15 Spis tre±ci 1 Denicja kongruencji i jej podstawowe wªasno±ci 3 2 Systemy pozycyjne 8 3 Elementy odwrotne 12 4 Pewne zastosowania elementów odwrotnych

Bardziej szczegółowo

TEORETYCZNE PODSTAWY INFORMATYKI

TEORETYCZNE PODSTAWY INFORMATYKI 1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Wykład 3 2 Złożoność obliczeniowa algorytmów Notacja wielkie 0 Notacja Ω i Θ Algorytm Hornera Przykłady rzędów

Bardziej szczegółowo

Zbiory ograniczone i kresy zbiorów

Zbiory ograniczone i kresy zbiorów Zbiory ograniczone i kresy zbiorów Def.. Liczb m nazywamy ograniczeniem dolnym a liczb M ograniczeniem górnym zbioru X R gdy (i) x m; (ii) x M. Mówimy,»e zbiór X jest ograniczony z doªu (odp. z góry) gdy

Bardziej szczegółowo

Programowanie wspóªbie»ne

Programowanie wspóªbie»ne 1 Zadanie 1: Bar Programowanie wspóªbie»ne wiczenia 6 monitory cz. 2 Napisz monitor Bar synchronizuj cy prac barmana obsªuguj cego klientów przy kolistym barze z N stoªkami. Ka»dy klient realizuje nast

Bardziej szczegółowo

wiczenie 1 Podstawy j zyka Java. Instrukcje warunkowe

wiczenie 1 Podstawy j zyka Java. Instrukcje warunkowe wiczenie 1 Podstawy j zyka Java. Instrukcje warunkowe 1 Wprowadzenie 1.1 rodowisko programistyczne NetBeans https://netbeans.org/ 1.2 Dokumentacja j zyka Java https://docs.oracle.com/javase/8/docs/api/

Bardziej szczegółowo

Analiza algorytmów zadania podstawowe

Analiza algorytmów zadania podstawowe Analiza algorytmów zadania podstawowe 15 stycznia 2019 Zadanie 1 Zliczanie Zliczaj(n) 1 r 0 2 for i 1 to n 1 3 do for j i + 1 to n 4 do for k 1 to j 5 do r r + 1 6 return r P Jaka wartość zostanie zwrócona

Bardziej szczegółowo

Zbiory i odwzorowania

Zbiory i odwzorowania Zbiory i odwzorowania 1 Sposoby okre±lania zbiorów 1) Zbiór wszystkich elementów postaci f(t), gdzie t przebiega zbiór T : {f(t); t T }. 2) Zbiór wszystkich elementów x zbioru X speªniaj cych warunek ϕ(x):

Bardziej szczegółowo

Bash i algorytmy. Elwira Wachowicz. 20 lutego

Bash i algorytmy. Elwira Wachowicz. 20 lutego Bash i algorytmy Elwira Wachowicz elwira@ifd.uni.wroc.pl 20 lutego 2012 Elwira Wachowicz (elwira@ifd.uni.wroc.pl) Bash i algorytmy 20 lutego 2012 1 / 16 Inne przydatne polecenia Polecenie Dziaªanie Przykªad

Bardziej szczegółowo

Pascal - wprowadzenie

Pascal - wprowadzenie Pascal - wprowadzenie Ogólne informacje o specyfice języka i budowaniu programów Filip Jarmuszczak kl. III c Historia Pascal dawniej jeden z najpopularniejszych języków programowania, uniwersalny, wysokiego

Bardziej szczegółowo

ELEMENTARNA TEORIA LICZB. 1. Podzielno±

ELEMENTARNA TEORIA LICZB. 1. Podzielno± ELEMENTARNA TEORIA LICZB IZABELA AGATA MALINOWSKA N = {1, 2,...} 1. Podzielno± Denicja 1.1. Niepusty podzbiór A zbioru liczb naturalnych jest ograniczony, je»eli istnieje taka liczba naturalna n 0,»e m

Bardziej szczegółowo

Algorytmy i Struktury Danych.

Algorytmy i Struktury Danych. Algorytmy i Struktury Danych. Metoda Dziel i zwyciężaj. Problem Sortowania, cd. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 2 Bożena Woźna-Szcześniak (AJD) Algorytmy

Bardziej szczegółowo

Kierunek: Informatyka. Przedmiot:

Kierunek: Informatyka. Przedmiot: Kierunek: Informatyka Przedmiot: ALGORYTMY I Z LOŻONOŚĆ Czas trwania: Przedmiot: Jezyk wyk ladowy: semestr III obowiazkowy polski Rodzaj zaj eć Wyk lad Laboratorium Prowadzacy Prof. dr hab. Wojciech Penczek

Bardziej szczegółowo

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja cz. 1

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja cz. 1 Podstawy programowania Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja cz. 1 1 I. Składnia Składnia programu Program nazwa; Uses biblioteki; Var deklaracje zmiennych; Begin

Bardziej szczegółowo

Logika dla matematyków i informatyków Wykªad 1

Logika dla matematyków i informatyków Wykªad 1 Logika dla matematyków i informatyków Wykªad 1 Stanisªaw Goldstein Wydziaª Matematyki i Informatyki UŠ 16 lutego 2016 Wszech±wiat matematyczny skªada si wyª cznie ze zbiorów. Liczby naturalne s zdeniowane

Bardziej szczegółowo

Macierze. 1 Podstawowe denicje. 2 Rodzaje macierzy. Denicja

Macierze. 1 Podstawowe denicje. 2 Rodzaje macierzy. Denicja Macierze 1 Podstawowe denicje Macierz wymiaru m n, gdzie m, n N nazywamy tablic liczb rzeczywistych (lub zespolonych) postaci a 11 a 1j a 1n A = A m n = [a ij ] m n = a i1 a ij a in a m1 a mj a mn W macierzy

Bardziej szczegółowo

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych:

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych: Zmienna i typ Pascal typy danych Zmienna to obiekt, który może przybierać różne wartości. Typ zmiennej to zakres wartości, które może przybierać zmienna. Deklarujemy je w nagłówku poprzedzając słowem kluczowym

Bardziej szczegółowo

Teoria grafów i sieci 1 / 58

Teoria grafów i sieci 1 / 58 Teoria grafów i sieci 1 / 58 Literatura 1 B.Korte, J.Vygen, Combinatorial optimization 2 D.Jungnickel, Graphs, Networks and Algorithms 3 M.Sysªo, N.Deo Metody optymalizacji dyskretnej z przykªadami w Turbo

Bardziej szczegółowo

Wykªad 7. Ekstrema lokalne funkcji dwóch zmiennych.

Wykªad 7. Ekstrema lokalne funkcji dwóch zmiennych. Wykªad jest prowadzony w oparciu o podr cznik Analiza matematyczna 2. Denicje, twierdzenia, wzory M. Gewerta i Z. Skoczylasa. Wykªad 7. Ekstrema lokalne funkcji dwóch zmiennych. Denicja Mówimy,»e funkcja

Bardziej szczegółowo

Metodydowodzenia twierdzeń

Metodydowodzenia twierdzeń 1 Metodydowodzenia twierdzeń Przez zdanie rozumiemy dowolne stwierdzenie, które jest albo prawdziwe, albo faªszywe (nie mo»e by ono jednocze±nie prawdziwe i faªszywe). Tradycyjnie b dziemy u»ywali maªych

Bardziej szczegółowo

Ciaªa i wielomiany. 1 Denicja ciaªa. Ciaªa i wielomiany 1

Ciaªa i wielomiany. 1 Denicja ciaªa. Ciaªa i wielomiany 1 Ciaªa i wielomiany 1 Ciaªa i wielomiany 1 Denicja ciaªa Niech F b dzie zbiorem, i niech + (dodawanie) oraz (mno»enie) b d dziaªaniami na zbiorze F. Denicja. Zbiór F wraz z dziaªaniami + i nazywamy ciaªem,

Bardziej szczegółowo

Informatyka 1. Wyrażenia i instrukcje, złożoność obliczeniowa

Informatyka 1. Wyrażenia i instrukcje, złożoność obliczeniowa Informatyka 1 Wykład III Wyrażenia i instrukcje, złożoność obliczeniowa Robert Muszyński ZPCiR ICT PWr Zagadnienia: składnia wyrażeń, drzewa rozbioru gramatycznego i wyliczenia wartości wyrażeń, operatory

Bardziej szczegółowo

A = n. 2. Ka»dy podzbiór zbioru sko«czonego jest zbiorem sko«czonym. Dowody tych twierdze«(elementarne, lecz nieco nu» ce) pominiemy.

A = n. 2. Ka»dy podzbiór zbioru sko«czonego jest zbiorem sko«czonym. Dowody tych twierdze«(elementarne, lecz nieco nu» ce) pominiemy. Logika i teoria mnogo±ci, konspekt wykªad 12 Teoria mocy, cz ± II Def. 12.1 Ka»demu zbiorowi X przyporz dkowujemy oznaczany symbolem X obiekt zwany liczb kardynaln (lub moc zbioru X) w taki sposób,»e ta

Bardziej szczegółowo

Równania ró»niczkowe I rz du (RRIR) Twierdzenie Picarda. Anna D browska. WFTiMS. 23 marca 2010

Równania ró»niczkowe I rz du (RRIR) Twierdzenie Picarda. Anna D browska. WFTiMS. 23 marca 2010 WFTiMS 23 marca 2010 Spis tre±ci 1 Denicja 1 (równanie ró»niczkowe pierwszego rz du) Równanie y = f (t, y) (1) nazywamy równaniem ró»niczkowym zwyczajnym pierwszego rz du w postaci normalnej. Uwaga 1 Ogólna

Bardziej szczegółowo

Instrukcje podsumowanie. Proste: - przypisania - wejścia-wyjścia (read, readln, write, writeln) - pusta - po prostu ; (średnik) Strukturalne:

Instrukcje podsumowanie. Proste: - przypisania - wejścia-wyjścia (read, readln, write, writeln) - pusta - po prostu ; (średnik) Strukturalne: Instrukcje podsumowanie Proste: - przypisania - wejścia-wyjścia (read, readln, write, writeln) - pusta - po prostu ; (średnik) Strukturalne: - grupująca end - warunkowa if

Bardziej szczegółowo

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14 WST P DO TEORII INFORMACJI I KODOWANIA Grzegorz Szkibiel Wiosna 2013/14 Spis tre±ci 1 Kodowanie i dekodowanie 4 1.1 Kodowanie a szyfrowanie..................... 4 1.2 Podstawowe poj cia........................

Bardziej szczegółowo

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe Wykład 15 Wprowadzenie do języka na bazie a Literatura Podobieństwa i różnice Literatura B.W.Kernighan, D.M.Ritchie Język ANSI Kompilatory Elementarne różnice Turbo Delphi FP Kylix GNU (gcc) GNU ++ (g++)

Bardziej szczegółowo

Matematyczne Podstawy Informatyki

Matematyczne Podstawy Informatyki Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Algorytm 1. Termin algorytm jest używany w informatyce

Bardziej szczegółowo

Algorytmy i struktury danych

Algorytmy i struktury danych Algorytmy i struktury danych Wykªad I wst p do algorytmów Paweª Rembelski PJWSTK 4 pa¹dziernika 2009 Paweª Rembelski (PJWSTK) Algorytmy i struktury danych 4 pa¹dziernika 2009 1 / 49 1 Notacja asymptotyczna

Bardziej szczegółowo

Podstawowe algorytmy i ich implementacje w C. Wykład 9

Podstawowe algorytmy i ich implementacje w C. Wykład 9 Wstęp do programowania 1 Podstawowe algorytmy i ich implementacje w C Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 9 Element minimalny i maksymalny zbioru Element minimalny

Bardziej szczegółowo

Funkcje, wielomiany. Informacje pomocnicze

Funkcje, wielomiany. Informacje pomocnicze Funkcje, wielomiany Informacje pomocnicze Przydatne wzory: (a + b) 2 = a 2 + 2ab + b 2 (a b) 2 = a 2 2ab + b 2 (a + b) 3 = a 3 + 3a 2 b + 3ab 2 + b 3 (a b) 3 = a 3 3a 2 b + 3ab 2 b 3 a 2 b 2 = (a + b)(a

Bardziej szczegółowo

Programowanie i struktury danych

Programowanie i struktury danych Programowanie i struktury danych Wykªad 3 1 / 37 tekstowe binarne Wyró»niamy dwa rodzaje plików: pliki binarne pliki tekstowe 2 / 37 binarne tekstowe binarne Plik binarny to ci g bajtów zapami tanych w

Bardziej szczegółowo

Lekcja 9 - LICZBY LOSOWE, ZMIENNE

Lekcja 9 - LICZBY LOSOWE, ZMIENNE Lekcja 9 - LICZBY LOSOWE, ZMIENNE I STAŠE 1 Liczby losowe Czasami spotkamy si z tak sytuacj,»e b dziemy potrzebowa by program za nas wylosowaª jak ± liczb. U»yjemy do tego polecenia: - liczba losowa Sprawd¹my

Bardziej szczegółowo

prowadzący dr ADRIAN HORZYK /~horzyk e-mail: horzyk@agh tel.: 012-617 Konsultacje paw. D-13/325

prowadzący dr ADRIAN HORZYK /~horzyk e-mail: horzyk@agh tel.: 012-617 Konsultacje paw. D-13/325 PODSTAWY INFORMATYKI WYKŁAD 8. prowadzący dr ADRIAN HORZYK http://home home.agh.edu.pl/~ /~horzyk e-mail: horzyk@agh agh.edu.pl tel.: 012-617 617-4319 Konsultacje paw. D-13/325 DRZEWA Drzewa to rodzaj

Bardziej szczegółowo

Wska¹niki, tablice dynamiczne wielowymiarowe

Wska¹niki, tablice dynamiczne wielowymiarowe Rozdziaª 11 Wska¹niki, tablice dynamiczne wielowymiarowe 11.1 Wst p Identycznie, jak w przypadku tablic statycznych, tablica dynamiczna mo»e by tablic jedno-, dwu-, trójitd. wymiarow. Tablica dynamiczna

Bardziej szczegółowo

Interpolacja Lagrange'a, bazy wielomianów

Interpolacja Lagrange'a, bazy wielomianów Rozdziaª 4 Interpolacja Lagrange'a, bazy wielomianów W tym rozdziale zajmiemy si interpolacj wielomianow. Zadanie interpolacji wielomianowej polega na znalezieniu wielomianu stopnia nie wi kszego od n,

Bardziej szczegółowo

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Turbo Pascal jest językiem wysokiego poziomu, czyli nie jest rozumiany bezpośrednio dla komputera, ale jednocześnie jest wygodny dla programisty,

Bardziej szczegółowo

Ekstremalnie maªe zbiory

Ekstremalnie maªe zbiory Maªe jest pi kne Instytut Matematyki Uniwersytetu Warszawskiego Nadarzyn, 27.08.2011 Zbiory silnie miary zero Przypomnienie Zbiór X [0, 1] jest miary Lebesgue'a zero, gdy dla ka»dego ε > 0 istnieje ci

Bardziej szczegółowo

Załącznik KARTA PRZEDMIOTU. KARTA PRZEDMIOTU Wydział Automatyki, Elektroniki i Informatyki, Rok akademicki: 2009/2010

Załącznik KARTA PRZEDMIOTU. KARTA PRZEDMIOTU Wydział Automatyki, Elektroniki i Informatyki, Rok akademicki: 2009/2010 1/1 Wydział Automatyki, Elektroniki i Informatyki, Rok akademicki: 2009/2010 Kierunek: INFORMATYKA Specjalność: PRZEDMIOT OBOWIĄZKOWY DLA WSZYSTKICH STUDENTÓW. Tryb studiów: NIESTACJONARNE PIERWSZEGO STOPNIA

Bardziej szczegółowo

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15 ARYTMETYKA MODULARNA Grzegorz Szkibiel Wiosna 2014/15 Spis tre±ci 1 Denicja kongruencji i jej podstawowe wªasno±ci 3 2 Systemy pozycyjne 8 3 Elementy odwrotne 12 4 Pewne zastosowania elementów odwrotnych

Bardziej szczegółowo

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie. Sortowanie Dane wejściowe: ciąg n-liczb (kluczy) (a 1, a 2, a 3,..., a n 1, a n ) Dane wyjściowe: permutacja ciągu wejściowego (a 1, a 2, a 3,..., a n 1, a n) taka, że a 1 a 2 a 3... a n 1 a n. Będziemy

Bardziej szczegółowo

Problem decyzyjny naley do klasy NP. (Polynomial), jeeli moe by rozwizany w czasie conajwyej wielomianowym przez algorytm A dla DTM.

Problem decyzyjny naley do klasy NP. (Polynomial), jeeli moe by rozwizany w czasie conajwyej wielomianowym przez algorytm A dla DTM. WYKŁAD : Teoria NP-zupełnoci. Problem decyzyjny naley do klasy P (Polynomial), jeeli moe by rozwizany w czasie conajwyej wielomianowym przez algorytm A dla DTM. (przynaleno ta jest zachowana równie dla

Bardziej szczegółowo

Rekurencja. Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Przykład: silnia: n! = n(n-1)!

Rekurencja. Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Przykład: silnia: n! = n(n-1)! Rekurencja Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Przykład: silnia: n! = n(n-1)! Pseudokod: silnia(n): jeżeli n == 0 silnia = 1 w przeciwnym

Bardziej szczegółowo

Sortowanie przez scalanie

Sortowanie przez scalanie Sortowanie przez scalanie Wykład 2 12 marca 2019 (Wykład 2) Sortowanie przez scalanie 12 marca 2019 1 / 17 Outline 1 Metoda dziel i zwyciężaj 2 Scalanie Niezmiennik pętli - poprawność algorytmu 3 Sortowanie

Bardziej szczegółowo

Algorytmy i struktury danych. wykład 1

Algorytmy i struktury danych. wykład 1 Plan całego wykładu:. Pojęcie algorytmu, projektowanie wstępujące i zstępujące, rekurencja. Klasy algorytmów. Poprawność algorytmu, złożoność obliczeniowa. Wskaźniki, dynamiczne struktury danych: listy,

Bardziej szczegółowo

Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2015/2016. Forma studiów: Stacjonarne Kod kierunku: 11.

Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2015/2016. Forma studiów: Stacjonarne Kod kierunku: 11. Państwowa Wyższa Szko la Zawodowa w Nowym Sa czu Karta przedmiotu Instytut Techniczny obowiązuje studentów rozpoczynających studia w roku akademickim 201/2016 Kierunek studiów: Informatyka Profil: Ogólnoakademicki

Bardziej szczegółowo

Algorytmy i struktury danych.

Algorytmy i struktury danych. Kod przedmiotu: ASD Rodzaj przedmiotu: Wydział: Informatyki Kierunek: Informatyka Specjalność (specjalizacja): - Algorytmy i struktury danych. kierunkowy ; obowiązkowy Poziom studiów: pierwszego stopnia

Bardziej szczegółowo

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15 ARYTMETYKA MODULARNA Grzegorz Szkibiel Wiosna 2014/15 Spis tre±ci 1 Denicja kongruencji i jej podstawowe wªasno±ci 3 2 Systemy pozycyjne 8 3 Elementy odwrotne 12 4 Pewne zastosowania elementów odwrotnych

Bardziej szczegółowo

Baza danych - Access. 2 Budowa bazy danych

Baza danych - Access. 2 Budowa bazy danych Baza danych - Access 1 Baza danych Jest to zbiór danych zapisanych zgodnie z okre±lonymi reguªami. W w»szym znaczeniu obejmuje dane cyfrowe gromadzone zgodnie z zasadami przyj tymi dla danego programu

Bardziej szczegółowo

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania 1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja nie ma parametru i zwraca wartość na zewnątrz. nie ma parametru i nie zwraca wartości na zewnątrz. ma parametr o nazwie void i zwraca

Bardziej szczegółowo

Zdzisªaw Dzedzej, Katedra Analizy Nieliniowej pok. 611 Kontakt:

Zdzisªaw Dzedzej, Katedra Analizy Nieliniowej pok. 611 Kontakt: Zdzisªaw Dzedzej, Katedra Analizy Nieliniowej pok. 611 Kontakt: zdzedzej@mif.pg.gda.pl www.mif.pg.gda.pl/homepages/zdzedzej () 5 pa¹dziernika 2016 1 / 1 Literatura podstawowa R. Rudnicki, Wykªady z analizy

Bardziej szczegółowo

Informatyka 1. Przetwarzanie tekstów

Informatyka 1. Przetwarzanie tekstów Informatyka 1 Wykład IX Przetwarzanie tekstów Robert Muszyński ZPCiR ICT PWr Zagadnienia: reprezentacja napisów znakowych, zmienne napisowe w Sun Pascalu, zgodność typów, operowanie na napisach: testowanie

Bardziej szczegółowo