Algorytmy i struktury danych
|
|
- Kornelia Szymańska
- 8 lat temu
- Przeglądów:
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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ą
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
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
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
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
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.
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
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.
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
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)
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
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
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:
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
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
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
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
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?
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
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
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
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_
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
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
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;
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
Ÿ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.
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,
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
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
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
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
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
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
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
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
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
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
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/
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
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):
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
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
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
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
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
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
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
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
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
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
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
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
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,
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
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
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
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
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........................
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++)
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
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
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
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
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
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
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
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
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,
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,
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
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
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
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
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
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
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
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,
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
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
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
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
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
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
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