Podstawy Informatyki

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

Download "Podstawy Informatyki"

Transkrypt

1 Podstawy Informatyki Bożena Woźna-Szcześniak Jan Długosz University, Poland Wykład 7 i 8 Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 1 / 44

2 Struktura danych - tablica Tablica jednowymiarowa (wektor) jest takim uporzadkowanym zbiorem elementów jednorodnych, że z każdym elementem jest zwiazany uporzadkowany zbiór liczb całkowitych - indeksów. Indeksy w sposób jednoznaczny określaja pozycję każdego elementu tablicy. W tablicach każdy indeks zmienia się ze stałym krokiem od dolnej do górnej granicy. W przypadku tablic z języka C/C++/Java zbiór indeksów przebiega wartości od 0 do n 1, dla pewnej ustalonej liczby naturalnej n. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 2 / 44

3 Struktura danych - tablica Tablica jednowymiarowa (wektor) jest takim uporzadkowanym zbiorem elementów jednorodnych, że z każdym elementem jest zwiazany uporzadkowany zbiór liczb całkowitych - indeksów. Indeksy w sposób jednoznaczny określaja pozycję każdego elementu tablicy. W tablicach każdy indeks zmienia się ze stałym krokiem od dolnej do górnej granicy. W przypadku tablic z języka C/C++/Java zbiór indeksów przebiega wartości od 0 do n 1, dla pewnej ustalonej liczby naturalnej n. Przykład: 11 elementowa tablica liczb całkowitych. Indeksy Wartości Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 2 / 44

4 Struktura danych - tablica Przykład: 11 elementowa tablica liczb rzczywistych o nazwie A. Indeksy Wartości Notacja: 1 element tablicy: A[0] 5 element tablicy: A[4] i element tablicy: A[i-1] Zakres tablicy: A[0].. A[n-1], gdzie n oznacza liczbe elementów w tablicy. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 3 / 44

5 Struktura danych - tablica Przykład: 11 elementowa tablica liczb rzczywistych o nazwie A. Indeksy Wartości Notacja: 1 element tablicy: A[0] 5 element tablicy: A[4] i element tablicy: A[i-1] Zakres tablicy: A[0].. A[n-1], gdzie n oznacza liczbe elementów w tablicy. wartość 2 elementu tablicy A: A[1] = 3 wartość 11 elementu tablicy A: A[10] = 5.33 Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 3 / 44

6 Struktura danych - tablica Przykład: 11 elementowa tablica zanków o nazwie C. Indeksy Wartości A L A M A K O T A Notacja: 1 element tablicy: C[0] 5 element tablicy: C[4] i element tablicy: C[i-1] Zakres tablicy: C[0].. C[n-1], gdzie n oznacza liczbe elementów w tablicy. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 4 / 44

7 Struktura danych - tablica Przykład: 11 elementowa tablica zanków o nazwie C. Indeksy Wartości A L A M A K O T A Notacja: 1 element tablicy: C[0] 5 element tablicy: C[4] i element tablicy: C[i-1] Zakres tablicy: C[0].. C[n-1], gdzie n oznacza liczbe elementów w tablicy. wartość 2 elementu tablicy C: C[1] = L wartość 9 elementu tablicy C: C[8] = O Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 4 / 44

8 Sumowanie elemantów z tablicy, instrukacja while Require: tablica A o rozmiarze n {A=[0],...,A[n-1]} Algorytm: Suma 1: suma := 0; 2: i := 0; 3: while i < n do 4: suma := suma+a[i]; 5: i := i + 1; 6: end while 7: return suma; Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 5 / 44

9 Sumowanie elemantów z tablicy, instrukacja for Require: tablica A o rozmiarze n {A=[0],...,A[n-1]} Algorytm: Suma 1: suma := 0; 2: for i := 0 n 1 do 3: suma := suma+a[i]; 4: end for 5: return suma; Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 6 / 44

10 Sumowanie elemantów parzystych z tablicy, instrukacja while Require: tablica A o rozmiarze n {A=[0],...,A[n-1]} Algorytm: Suma 1: suma := 0; 2: i := 0; 3: while i < n do 4: if A[i] mod 2 = 0 then 5: suma := suma+a[i]; 6: end if 7: i := i + 1; 8: end while 9: return suma; Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 7 / 44

11 Sumowanie elemantów parzystych z tablicy, instrukacja for Require: tablica A o rozmiarze n {A=[0],...,A[n-1]} Algorytm: Suma 1: suma := 0; 2: for i := 0 n 1 do 3: if A[i] mod 2 = 0 then 4: suma := suma+a[i]; 5: end if 6: end for 7: return suma; Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 8 / 44

12 Element minimalny i maksymalny zbioru Definicja problemu: Dane: n - liczba elementów zbioru a 1, a 2, a 3,...,a n - ciag elementów Szukane: Elementy największy i najmniejszy zbioru. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 9 / 44

13 Element minimalny zbioru Require: tablica A o rozmiarze n {A=[0],...,A[n-1]} Algorytm: MIN 1: min := 0; 2: for all i := 1 to n 1 do 3: if A[i] < A[min] then 4: min := i; 5: end if 6: i := i + 1; 7: end for 8: return min; Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 10 / 44

14 Element maksymalny zbioru Require: tablica A o rozmiarze n {A=[0],...,A[n-1]} Algorytm: MAX 1: max := 0; 2: for all i := 1 to n 1 do 3: if A[i] > A[max] then 4: max := i; 5: end if 6: i := i + 1; 7: end for 8: return max; Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 11 / 44

15 Wyszukiwanie binarne Wyszukiwanie binarne pozwala na szybkie wyszukiwanie wartości w posortowanych zbiorach (np. tablicy). Skuteczność wyszukiwania binarnego wynika z tego, że zamiast przegladać wszystkie elementy posortowanego zbioru po kolei, wykorzystujemy informację o tym, że jest on uporzadkowany. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 12 / 44

16 Wyszukiwanie binarne Algorytm: Dana jest tablica A oraz poszukiwany element key. Sprawdź środkowy element tablicy. Jeśli jest równy key, to koniec. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 13 / 44

17 Wyszukiwanie binarne Algorytm: Dana jest tablica A oraz poszukiwany element key. Sprawdź środkowy element tablicy. Jeśli jest równy key, to koniec. Jeśli środkowy element jest większy niż key, to poszukiwany element jeśli jest w tablicy, to jest w jej lewej części. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 13 / 44

18 Wyszukiwanie binarne Algorytm: Dana jest tablica A oraz poszukiwany element key. Sprawdź środkowy element tablicy. Jeśli jest równy key, to koniec. Jeśli środkowy element jest większy niż key, to poszukiwany element jeśli jest w tablicy, to jest w jej lewej części. Jeśli środkowy element jest mniejszy niż key, to poszukiwany element jeśli jest w tablicy, to jest w jej prawej części. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 13 / 44

19 Wyszukiwanie binarne - przykład Znaleźć liczbę 9 w ciagu: 3, 5, 7, 8, 9, 12, 15. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 14 / 44

20 Wyszukiwanie binarne - algorytm Require: tablica a o rozmiarze n, wartość key {a=[0],...,a[n-1]} Algorytm: Wyszukiwanie binarne 1: left := 0; 2: right := n 1; 3: while left <= right do 4: curr := (left + right)/2; 5: if key = a[curr] then 6: return curr; 7: else 8: if key < a[curr] then 9: right := curr 1; 10: else 11: left := curr + 1; 12: end if 13: end if 14: end while Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 15 / 44

21 Liczby pierwsze Liczby pierwsze już od wieków fascynowały i zastanawiały uczonych. W matematyce pojęcie pierwszości liczb, to fundamentalne zagadnienie dotyczace liczb naturalnych. Jest ich nieskończenie wiele, co udowodnił już Euklides. Liczba pierwsza jest liczba naturalna, która dzieli się bez reszty tylko przez 1 i przez sama siebie, np. 2, 3, 5, 7, 11, 13, 17, 19, 23, 29 itd. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 16 / 44

22 Sita Eratostenesa Sito Eratostenesa to algorytm wyznaczania liczb pierwszych z zadanego przedziału [2, n]. Idea: Ze zbioru liczb naturalnych większych od jedności, tj. {2, 3, 4,...}, wybieramy najmniejsza, czyli 2, i wykreślamy wszystkie jej wielokrotności większe od niej samej, tj. wszystkie liczby parzyste większe od 2. Z pozostałych liczb wybieramy najmniejsza niewykreślona liczbę, tj. 3, i usuwamy wszystkie jej wielokrotności większe od niej samej: {6, 9, 12,...}; nie przejmujemy się tym, że niektóre liczby (np. 6) będa skreślane więcej niż raz. Według tej samej procedury postępujemy dla liczby 5. Potem dla liczby 7, 11, 13, itd., aż do sprawdzenia wszystkich niewykreślonych wcześniej liczb. Dla danej liczby n wszystkie niewykreślone liczby mniejsze od n sa liczbami pierwszymi. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 17 / 44

23 Zadanie! Zapisać algorytm Sita Eratostenesa w postaci pseudokodu i schematu blokowego w programie Eli! Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 18 / 44

24 Algorym wyznaczania liczb pierwszych Twierdzenie 1 Liczba złożona n posiada dzielnik, który jest mniejszy od pierwiastka z tej liczby, tj. sqrt(n). Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 19 / 44

25 Algorym wyznaczania liczb pierwszych Twierdzenie 1 Liczba złożona n posiada dzielnik, który jest mniejszy od pierwiastka z tej liczby, tj. sqrt(n). Dowód - idea: Niech n będzie liczba złożona. Wtedy n = a b oraz 0 < a b < n. Zatem musi być a sqrt(n), gdyż inaczej otrzymalibyśmy a b > n (sprzeczność). Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 19 / 44

26 Algorym wyznaczania liczb pierwszych Require: Liczba n Algorytm: Czy n jest liczba pierwsza 1: i := 2 2: while i < sqrt(n)+1 do 3: if i jest dzielnikiem n then 4: return n jest liczba złożona; 5: end if 6: i := i + 1; 7: end while 8: return n jest liczba pierwsza; Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 20 / 44

27 Kluczowe zastosowanie liczb pierwszych - Kryptografia Kryptografia to dziedzina zajmujaca się praktycznym zastosowaniem wiedzy matematycznej w celu ochrony danych przechowywanych w komputerach, podczas przesyłu informacji przez sieć komputerowa badź jakaś inna, w której występuja dane w postaci cyfrowej. Ma ona ogromne znaczenie w ochronie danych komputerowych. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 21 / 44

28 Kluczowe zastosowanie liczb pierwszych - Kryptografia Kryptografia to dziedzina zajmujaca się praktycznym zastosowaniem wiedzy matematycznej w celu ochrony danych przechowywanych w komputerach, podczas przesyłu informacji przez sieć komputerowa badź jakaś inna, w której występuja dane w postaci cyfrowej. Ma ona ogromne znaczenie w ochronie danych komputerowych. Nie jest to oczywiście pełny opis, ponieważ kryptografia zajmowała się ochrona danych ogólnie, nie tylko komputerowych, jednak w dzisiejszych czasach ma to już raczej tylko znaczenie historyczne. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 21 / 44

29 Kryptografia - wykorzystanie Powszechnie kryptografię wykorzystuje się w bankowości internetowej, gdzie wszystkie transakcje odbywaja się w tak zwanym bezpiecznym połaczeniu, a dodatkowo każda operacja jest zatwierdzana przy użyciu klucza prywatnego. Jednak poszczególne metody zależa już od konkretnego w tym przypadku banku, ale również każdej innej instytucji potrzebujacej szyfrowania badź uwierzytelniania. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 22 / 44

30 Kryptografia - krótka historia Źródło: Ludzie od zawsze potrzebowali ukrywać jakieś informacje. Kryptografia była znana już za czasów Cesarstwa Rzymskiego, i służyła do szyfrowania wiadomości. Stosowany algorytm polegał na zastapieniu każdej litery w tekście jawnym litera znajdujac a się o pewna liczbę pozycji dalej w alfabecie. Oczywiście dziś algorytm taki jest banalny, jednakże w swoich czasach spełniał dobrze swa funkcję. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 23 / 44

31 Kryptografia - krótka historia W XVII wieku kryptografia pojawiła się w zastosowaniach wojskowych i była używana aż do XX wieku. Były to jednak proste szyfry podstawieniowo - przestawieniowe. Problem był w tym, że ujawnienie metody szyfrowania czyniło ja niezdatna do użytku. Tak jak to było w przypadku Enigmy, wystarczyło zbudować kopię, by złamać niemieckie szyfry. Zatem brak informacji o historycznych systemach kryptograficznych wyjaśnia fakt konieczności całkowitego utajniania używanych metod szyfrowania. Powszechne były też metody steganofraficzne, takie jak zaznaczanie liter, pisanie niewidzialnym atramentem, czy nakłuwanie szpilka liter. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 24 / 44

32 Kryptografia - krótka historia Następnie powstawały kolejne coraz bardziej skomplikowane szyfry. Rozwój kryptografii symetrycznej postępował dosyć szybko. Powstały szyfry jedno- i wielo-alfabetowe, szyfrowanie wieloliterowe, techniki transpozycyjne, ale nie były to jedyne metody utajniania informacji. Bardzo powszechne były maszyny rotorowe, jak wspomniana już wcześniej Enigma, ale również Purple używana przez Japonię. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 25 / 44

33 Kryptografia - krótka historia Następnie powstawały kolejne coraz bardziej skomplikowane szyfry. Rozwój kryptografii symetrycznej postępował dosyć szybko. Powstały szyfry jedno- i wielo-alfabetowe, szyfrowanie wieloliterowe, techniki transpozycyjne, ale nie były to jedyne metody utajniania informacji. Bardzo powszechne były maszyny rotorowe, jak wspomniana już wcześniej Enigma, ale również Purple używana przez Japonię. W latach 60 w firmie IBM zaprojektowano algorytm szyfrujacy Lucifer. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 25 / 44

34 Kryptografia - krótka historia Następnie powstawały kolejne coraz bardziej skomplikowane szyfry. Rozwój kryptografii symetrycznej postępował dosyć szybko. Powstały szyfry jedno- i wielo-alfabetowe, szyfrowanie wieloliterowe, techniki transpozycyjne, ale nie były to jedyne metody utajniania informacji. Bardzo powszechne były maszyny rotorowe, jak wspomniana już wcześniej Enigma, ale również Purple używana przez Japonię. W latach 60 w firmie IBM zaprojektowano algorytm szyfrujacy Lucifer. Lucifer na polecenie Narodowego Biura Standardów (1973r.) został udoskonalony i w 1976 r. zatwierdzony jako standard szyfrowania danych, czyli tzw. DES (Data Encryption Standard). Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 25 / 44

35 Kryptografia - krótka historia Standard DES obecnie nie jest już uznawany za bezpieczny. Spowodowane jest to zbyt krótkim kluczem symetrycznym (56 Bitów). Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 26 / 44

36 Kryptografia - krótka historia Standard DES obecnie nie jest już uznawany za bezpieczny. Spowodowane jest to zbyt krótkim kluczem symetrycznym (56 Bitów). W 1999 r. klucz oparty na DES złamano w ciagu 22 godz. i 15min, co przy obecnej szybkości komputerów czyni ten sposób szyfrowania bezuzytecznym. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 26 / 44

37 Kryptografia - krótka historia Standard DES obecnie nie jest już uznawany za bezpieczny. Spowodowane jest to zbyt krótkim kluczem symetrycznym (56 Bitów). W 1999 r. klucz oparty na DES złamano w ciagu 22 godz. i 15min, co przy obecnej szybkości komputerów czyni ten sposób szyfrowania bezuzytecznym. Oblicze kryptografii zmieniło się, kiedy w 1976 roku Diffie i Hellman przedstawili nowy algorytm szyfrowania danych oparty na kluczach publicznych. Dawało to możliwość zaszyfrowania informacji przez dowolna osobę za pomoca klucza jawnego, natomiast odszyfrować mogła ja tylko osoba majaca swój klucz prywatny, zwjazany z kluczem jawnym. Wyliminowano potrzebę komunikacji się użytkowników celem wymiany klucza. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 26 / 44

38 Kryptografia - krótka historia Powstały takie algorytmy jak MD4, zaproponowany przez Rona Rivesta w 1990 roku, a poprawiony dwa lata później przez tego samego autora do wersji MD5. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 27 / 44

39 Kryptografia - krótka historia Powstały takie algorytmy jak MD4, zaproponowany przez Rona Rivesta w 1990 roku, a poprawiony dwa lata później przez tego samego autora do wersji MD5. Kolejnym algorytmem był SHA utworzony w 1993r. przez Narodowy Instytut Standardów i Technologii USA (NIST). Jest oparty na MD5, a jego budowa jest podobna do MD4. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 27 / 44

40 Kryptografia - krótka historia Powstały takie algorytmy jak MD4, zaproponowany przez Rona Rivesta w 1990 roku, a poprawiony dwa lata później przez tego samego autora do wersji MD5. Kolejnym algorytmem był SHA utworzony w 1993r. przez Narodowy Instytut Standardów i Technologii USA (NIST). Jest oparty na MD5, a jego budowa jest podobna do MD4. 2 stycznia 1997r. NIST ogłosił poszukiwania nowego standardu szyfrowania danych AES (Advanced Encryption Standard), określajac minimalne wymogi następujaco: dokumentacja szyfru musi być powszechnie dostępna szyfr ma należeć do grupy blokowych szyfrów symetrycznych projekt szyfru musi zakładać możliwość rozszerzenia długości klucza w razie takiej potrzeby szyfr musi być łatwy do implementacji zarówno sprzętowej jak i programowej nowy szyfr ma być bardziej efektywny oraz bardziej bezpieczny niż 3-DES, czyli: długość klucza to 128, 192 lub 256 bitów, a wielkość bloku: 128, 192 lub 256 bitów Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 27 / 44

41 Kryptografia - krótka historia Spośród wszystkich projektów, najlepsza ocenę uzyskał Rijndael i został wybrany nowym standardem szyfrowania danych (AES). Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 28 / 44

42 Kryptografia - krótka historia Spośród wszystkich projektów, najlepsza ocenę uzyskał Rijndael i został wybrany nowym standardem szyfrowania danych (AES). Rijndael jest blokowym szyfrem konwencjonalnym, pracujacym na blokach o długości 128, 192 oraz 256 bitów. Dozwolone sa również długości 160 oraz 224 bity, ale nie sa one uznawane jako standard. Identycznej długości moga być klucze. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 28 / 44

43 Kryptografia - krótka historia Spośród wszystkich projektów, najlepsza ocenę uzyskał Rijndael i został wybrany nowym standardem szyfrowania danych (AES). Rijndael jest blokowym szyfrem konwencjonalnym, pracujacym na blokach o długości 128, 192 oraz 256 bitów. Dozwolone sa również długości 160 oraz 224 bity, ale nie sa one uznawane jako standard. Identycznej długości moga być klucze. Kryptografia będzie się rozwijać, ze względu na ciagłe udoskonalanie systemów komputerowych, a co za tym idzie zwiększa się ich moc obliczeniowa, a to oznacza knieczność poszukiwania nowych badź udoskonalania już istniejacych sposobów ochrony danych. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 28 / 44

44 Liczby doskonałe Liczba doskonała jest liczba naturalna, równa sumie wszystkich swoich dzielników, mniejszych od niej samej. Najmniejsza liczba doskonała jest 6, ponieważ 6 = Następna jest 28 (28 = ). Kolejne znane to 496, 8128, Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 29 / 44

45 Liczby doskonałe W IX księdze Elementów Euklides podał następujacy sposób znajdowania liczb doskonałych parzystych: obliczać sumy kolejnych potęg dwójki np , jeżeli, któraś z otrzymanych sum okaże się liczba pierwsza, należy pomnożyć ja przez ostatni składnik i otrzymamy liczbę doskonała. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 30 / 44

46 Problem Sortowania Definicja problemu Niech (U, ) będzie zbiorem liniowo uporzadkowanym z relacja porzadkuj ac a i niech (a 1, a 2,..., a n ) będzie ciagiem n elementów z U, dla pewnego całkowitego n > 0. Znaleźć permutację (a 1, a 2,..., a n) taka, że (a 1 a 2 a n). Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 31 / 44

47 Problem Sortowania Definicja problemu Niech (U, ) będzie zbiorem liniowo uporzadkowanym z relacja porzadkuj ac a i niech (a 1, a 2,..., a n ) będzie ciagiem n elementów z U, dla pewnego całkowitego n > 0. Znaleźć permutację (a 1, a 2,..., a n) taka, że (a 1 a 2 a n). Przykład Wejście: Wyjście: Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 31 / 44

48 Problem Sortowania Definicja problemu Niech (U, ) będzie zbiorem liniowo uporzadkowanym z relacja porzadkuj ac a i niech (a 1, a 2,..., a n ) będzie ciagiem n elementów z U, dla pewnego całkowitego n > 0. Znaleźć permutację (a 1, a 2,..., a n) taka, że (a 1 a 2 a n). Przykład Wejście: Wyjście: Uwaga! Na U moga składać się zarówno liczby całkowite lub rzeczywiste, jak i U może być zbiorem rekordów, które należy posortować według ich kluczy. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 31 / 44

49 Popularne algorytmy sortowania Sortowanie przez porównywanie elementów: Sortowanie przez proste wybieranie (ang. selection sort) Sortowanie przez wstawianie (ang. insertion sort) Sortowanie babelkowe (ang. bubblesort) Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 32 / 44

50 Popularne algorytmy sortowania Sortowanie przez porównywanie elementów: Sortowanie przez proste wybieranie (ang. selection sort) Sortowanie przez wstawianie (ang. insertion sort) Sortowanie babelkowe (ang. bubblesort) Inne - będa omawiane na przedmiocie ASD Sortowanie przez scalanie (ang. merge sort) sortowanie szybkie (ang. quicksort) Sortowanie przez zliczanie (ang. counting sort) Sortowanie pozycyjne (ang. radix sort) sortowanie przez kopcowanie (ang. heapsort) Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 32 / 44

51 Sortowanie przez proste wybieranie Idea Sortowanie przez wybieranie polega na tym, że w każdym kroku znajdujemy najmniejszy element w sortowanym ciagu, po czym przenosimy ten element na odpowiednią pozycję do ciagu wynikowego (przez zamianę elementów miejscami). Sortowanie odbywa się w n-1 przebiegach. W i-tym przebiegu szukamy i-tego najmniejszego (największego) elementu. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 33 / 44

52 Sortowanie przez proste wybieranie Require: tablica A o rozmiarze n {A=[0],...,A[n-1]} 1: for all i := 0 to n 2 do 2: min := i; 3: for all j := i + 1 to n 1 do 4: if A[j] < A[min] then 5: min := j; 6: end if 7: j := j + 1; 8: end for {zamiana elementu A[min] z elementem A[i] w tablicy A} 9: zamiana (A, min, i); 10: i := i + 1; 11: end for Ze względu na dwie zagnieżdżone pętle, z których każda wykonuje się dokładnie n razy, algorytm wymaga n n porównań, aby posortować n elementowy ciag, czyli jest w klasie O(n 2 ). Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 34 / 44

53 Sortowanie przez proste wybieranie - Przykład nr iteracji - i Tablica Minimum 0 [9,1,6,8,4,3,2,0] 0 1 [0,1,6,8,4,3,2,9] 1 - na właściwej pozycji 2 [0,1,6,8,4,3,2,9] 2 3 [0,1,2,8,4,3,6,9] 3 4 [0,1,2,3,4,8,6,9] 4 5 [0,1,2,3,4,8,6,9] 6 6 [0,1,2,3,4,6,8,9] 8 7 [0,1,2,3,4,6,8,9] 9 - na właściwej pozycji Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 35 / 44

54 Sortowanie przez proste wybieranie - Przykład K r o k i a l g o r y t m u Klucze i = 2 i = 3 i = 4 i = 5 i = Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 36 / 44

55 Sortowanie przez wstawianie Idea Sortowanie przez wstawianie odbywa się w n 1 przebiegach. W i-tym przebiegu elementy na pozycjach 1,...,(i 1) sa już uporzadkowane, a wstawiany i-ty element przepycha się do przodu na właściwe miejsce, tak by stworzył wraz z innymi ciag uporzadkowany długości i. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 37 / 44

56 Sortowanie przez wstawianie - przykład Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 38 / 44

57 Sortowanie przez wstawianie Require: tablica A o rozmiarze n {A=[0],...,A[n-1]} 1: for i := 1 to n 1 do 2: key := A[i]; 3: j := i 1; 4: while j 0 and A[j] > key do 5: A[j + 1] := A[j]; 6: j := j 1; 7: end while 8: A[j + 1] := key; 9: end for Ze względu na dwie zagnieżdżone pętle, z których każda wykonuje się dokładnie n razy, algorytm wymaga n n porównań, aby posortować n elementowy ciag, czyli jest w klasie O(n 2 ). Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 39 / 44

58 Sortowanie przez wstawianie - Przykład nr iteracji (wartość i ) Tablica Rozważany element 0 [9,1,6,8,4,3,2,0] 9 Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 40 / 44

59 Sortowanie przez wstawianie - Przykład nr iteracji (wartość i ) Tablica Rozważany element 0 [9,1,6,8,4,3,2,0] 9 1 [1,9,6,8,4,3,2,0] 1 Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 40 / 44

60 Sortowanie przez wstawianie - Przykład nr iteracji (wartość i ) Tablica Rozważany element 0 [9,1,6,8,4,3,2,0] 9 1 [1,9,6,8,4,3,2,0] 1 2 [1,6,9,8,4,3,2,0] 6 Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 40 / 44

61 Sortowanie przez wstawianie - Przykład nr iteracji (wartość i ) Tablica Rozważany element 0 [9,1,6,8,4,3,2,0] 9 1 [1,9,6,8,4,3,2,0] 1 2 [1,6,9,8,4,3,2,0] 6 3 [1,6,8,9,4,3,2,0] 8 Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 40 / 44

62 Sortowanie przez wstawianie - Przykład nr iteracji (wartość i ) Tablica Rozważany element 0 [9,1,6,8,4,3,2,0] 9 1 [1,9,6,8,4,3,2,0] 1 2 [1,6,9,8,4,3,2,0] 6 3 [1,6,8,9,4,3,2,0] 8 4 [1,6,8,4,9,3,2,0] 4 Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 40 / 44

63 Sortowanie przez wstawianie - Przykład nr iteracji (wartość i ) Tablica Rozważany element 0 [9,1,6,8,4,3,2,0] 9 1 [1,9,6,8,4,3,2,0] 1 2 [1,6,9,8,4,3,2,0] 6 3 [1,6,8,9,4,3,2,0] 8 4 [1,6,8,4,9,3,2,0] 4 [1,6,4,8,9,3,2,0] 4 Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 40 / 44

64 Sortowanie przez wstawianie - Przykład nr iteracji (wartość i ) Tablica Rozważany element 0 [9,1,6,8,4,3,2,0] 9 1 [1,9,6,8,4,3,2,0] 1 2 [1,6,9,8,4,3,2,0] 6 3 [1,6,8,9,4,3,2,0] 8 4 [1,6,8,4,9,3,2,0] 4 [1,6,4,8,9,3,2,0] 4 [1,4,6,8,9,3,2,0] 4 Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 40 / 44

65 Sortowanie przez wstawianie - Przykład nr iteracji (wartość i ) Tablica Rozważany element 0 [9,1,6,8,4,3,2,0] 9 1 [1,9,6,8,4,3,2,0] 1 2 [1,6,9,8,4,3,2,0] 6 3 [1,6,8,9,4,3,2,0] 8 4 [1,6,8,4,9,3,2,0] 4 [1,6,4,8,9,3,2,0] 4 [1,4,6,8,9,3,2,0] 4 5 [1,4,6,8,3,9,2,0] 3 Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 40 / 44

66 Sortowanie przez wstawianie - Przykład nr iteracji (wartość i ) Tablica Rozważany element 0 [9,1,6,8,4,3,2,0] 9 1 [1,9,6,8,4,3,2,0] 1 2 [1,6,9,8,4,3,2,0] 6 3 [1,6,8,9,4,3,2,0] 8 4 [1,6,8,4,9,3,2,0] 4 [1,6,4,8,9,3,2,0] 4 [1,4,6,8,9,3,2,0] 4 5 [1,4,6,8,3,9,2,0] 3 [1,4,6,3,8,9,2,0] 3 Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 40 / 44

67 Sortowanie przez wstawianie - Przykład nr iteracji (wartość i ) Tablica Rozważany element 0 [9,1,6,8,4,3,2,0] 9 1 [1,9,6,8,4,3,2,0] 1 2 [1,6,9,8,4,3,2,0] 6 3 [1,6,8,9,4,3,2,0] 8 4 [1,6,8,4,9,3,2,0] 4 [1,6,4,8,9,3,2,0] 4 [1,4,6,8,9,3,2,0] 4 5 [1,4,6,8,3,9,2,0] 3 [1,4,6,3,8,9,2,0] 3 [1,4,3,6,8,9,2,0] 3 Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 40 / 44

68 Sortowanie przez wstawianie - Przykład nr iteracji (wartość i ) Tablica Rozważany element 0 [9,1,6,8,4,3,2,0] 9 1 [1,9,6,8,4,3,2,0] 1 2 [1,6,9,8,4,3,2,0] 6 3 [1,6,8,9,4,3,2,0] 8 4 [1,6,8,4,9,3,2,0] 4 [1,6,4,8,9,3,2,0] 4 [1,4,6,8,9,3,2,0] 4 5 [1,4,6,8,3,9,2,0] 3 [1,4,6,3,8,9,2,0] 3 [1,4,3,6,8,9,2,0] 3 [1,3,4,6,8,9,2,0] 3 Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 40 / 44

69 Sortowanie przez wstawianie - Przykład nr iteracji (wartość i ) Tablica Rozważany element 0 [9,1,6,8,4,3,2,0] 9 1 [1,9,6,8,4,3,2,0] 1 2 [1,6,9,8,4,3,2,0] 6 3 [1,6,8,9,4,3,2,0] 8 4 [1,6,8,4,9,3,2,0] 4 [1,6,4,8,9,3,2,0] 4 [1,4,6,8,9,3,2,0] 4 5 [1,4,6,8,3,9,2,0] 3 [1,4,6,3,8,9,2,0] 3 [1,4,3,6,8,9,2,0] 3 [1,3,4,6,8,9,2,0] 3 6 [1,2,3,4,6,8,9,0] 2 Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 40 / 44

70 Sortowanie przez wstawianie - Przykład nr iteracji (wartość i ) Tablica Rozważany element 0 [9,1,6,8,4,3,2,0] 9 1 [1,9,6,8,4,3,2,0] 1 2 [1,6,9,8,4,3,2,0] 6 3 [1,6,8,9,4,3,2,0] 8 4 [1,6,8,4,9,3,2,0] 4 [1,6,4,8,9,3,2,0] 4 [1,4,6,8,9,3,2,0] 4 5 [1,4,6,8,3,9,2,0] 3 [1,4,6,3,8,9,2,0] 3 [1,4,3,6,8,9,2,0] 3 [1,3,4,6,8,9,2,0] 3 6 [1,2,3,4,6,8,9,0] 2 7 [1,2,3,4,6,8,9,0] 0 Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 40 / 44

71 Sortowanie przez wstawianie - przykład K r o k i a l g o r y t m u Klucze i = 2 i = 3 i = 4 i = 5 i = 6 i = 7 i = Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 41 / 44

72 Sortowanie babelkowe W sortowaniu babelkowym liczby zachowuja się jak babelki, po kolei, jedna po drugiej ida do góry (lub w prawo). Sortowanie babelkowe jest wykonywane w n 1 fazach. W fazie i-tej wyznaczany jest i-ty najmniejszy/największy element. Idea Sprawdzamy cały ciag od końca. Jeżeli trafimy na parę elementów, w której większy poprzedza mniejszy, to zamieniamy je miejscami. Czynność powtarzamy tak długo, aż podczas sprawdzania całego ciagu, nie zajdzie ani jedna zamiana elementów. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 42 / 44

73 Sortowanie babelkowe Require: tablica A o rozmiarze n {A=[0],...,A[n-1]} 1: for i := 0 to n 1 do 2: for j := n downto i + 1 do 3: if A[j 1] > A[j] then 4: Zamiana(A, j 1, j); 5: end if 6: end for 7: end for Ze względu na dwie zagnieżdżone pętle, z których każda wykonuje się dokładnie n razy, algorytm wymaga n n porównań, aby posortować n elementowy ciag, czyli jest w klasie O(n 2 ). Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 43 / 44

74 Sortowanie babelkowe - przykład 44 Klucze i = i = 2 K r o k i a l g o r y t m u i = i = i = i = i = Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 44 / 44

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

Programowanie Proceduralne

Programowanie Proceduralne Programowanie Proceduralne Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 1 Bożena Woźna-Szcześniak (AJD) Programowanie Proceduralne Wykład 1 1 / 59 Cel wykładów z programowania

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 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

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

Laboratorium nr 7 Sortowanie

Laboratorium nr 7 Sortowanie Laboratorium nr 7 Sortowanie 1. Sortowanie bąbelkowe (BbS) 2. Sortowanie przez wstawianie (IS) 3. Sortowanie przez wybieranie (SS) Materiały Wyróżniamy następujące metody sortowania: 1. Przez prostą zamianę

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

Algorytmy i Struktury Danych

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

Bardziej szczegółowo

Programowanie proceduralne INP001210WL rok akademicki 2017/18 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

Programowanie proceduralne INP001210WL rok akademicki 2017/18 semestr letni. Wykład 3. Karol Tarnowski A-1 p. Programowanie proceduralne INP001210WL rok akademicki 2017/18 semestr letni Wykład 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Co to jest algorytm? Zapis algorytmów Algorytmy

Bardziej szczegółowo

Algorytmy i Struktury Danych.

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

Bardziej szczegółowo

Informatyka A. Algorytmy

Informatyka A. Algorytmy Informatyka A Algorytmy Spis algorytmów 1 Algorytm Euklidesa....................................... 2 2 Rozszerzony algorytm Euklidesa................................ 2 3 Wyszukiwanie min w tablicy..................................

Bardziej szczegółowo

Zadanie 1. Zmiana systemów. Zadanie 2. Szyfr Cezara. Zadanie 3. Czy liczba jest doskonała. Zadanie 4. Rozkład liczby na czynniki pierwsze Zadanie 5.

Zadanie 1. Zmiana systemów. Zadanie 2. Szyfr Cezara. Zadanie 3. Czy liczba jest doskonała. Zadanie 4. Rozkład liczby na czynniki pierwsze Zadanie 5. Zadanie 1. Zmiana systemów. Zadanie 2. Szyfr Cezara. Zadanie 3. Czy liczba jest doskonała. Zadanie 4. Rozkład liczby na czynniki pierwsze Zadanie 5. Schemat Hornera. Wyjaśnienie: Zadanie 1. Pozycyjne reprezentacje

Bardziej szczegółowo

Algorytmy i Struktury Danych.

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

Bardziej szczegółowo

Wykład 4. Sortowanie

Wykład 4. Sortowanie Wykład 4 Sortowanie 1 Sortowanie - zadanie Definicja (dla liczb): wejście: ciąg n liczb A = (a 1, a 2,, a n ) wyjście: permutacja (a 1,, a n ) taka, że a 1 a n Po co sortować? Podstawowy problem dla algorytmiki

Bardziej szczegółowo

Algorytmy i struktury danych

Algorytmy i struktury danych Algorytmy i struktury danych Proste algorytmy sortowania Witold Marańda maranda@dmcs.p.lodz.pl 1 Pojęcie sortowania Sortowaniem nazywa się proces ustawiania zbioru obiektów w określonym porządku Sortowanie

Bardziej szczegółowo

Zarys algorytmów kryptograficznych

Zarys algorytmów kryptograficznych Zarys algorytmów kryptograficznych Laboratorium: Algorytmy i struktury danych Spis treści 1 Wstęp 1 2 Szyfry 2 2.1 Algorytmy i szyfry........................ 2 2.2 Prosty algorytm XOR......................

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Algorytmy na tablicach Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk (Wydział Fizyki) WP w. III Jesień 2013 1 / 23 Dwadzieścia pytań Zasady 1 Osoba 1 wymyśla hasło z ustalonej

Bardziej szczegółowo

Definicja. Ciąg wejściowy: Funkcja uporządkowująca: Sortowanie polega na: a 1, a 2,, a n-1, a n. f(a 1 ) f(a 2 ) f(a n )

Definicja. Ciąg wejściowy: Funkcja uporządkowująca: Sortowanie polega na: a 1, a 2,, a n-1, a n. f(a 1 ) f(a 2 ) f(a n ) SORTOWANIE 1 SORTOWANIE Proces ustawiania zbioru elementów w określonym porządku. Stosuje się w celu ułatwienia późniejszego wyszukiwania elementów sortowanego zbioru. 2 Definicja Ciąg wejściowy: a 1,

Bardziej szczegółowo

Wstęp do Informatyki

Wstęp do Informatyki Wstęp do Informatyki dr hab. Bożena Woźna-Szcześniak, prof. AJD bwozna@gmail.com Jan Długosz University, Poland Wykład 8 Bożena Woźna-Szcześniak (AJD) Wstęp do Informatyki Wykład 8 1 / 32 Instrukcje iteracyjne

Bardziej szczegółowo

Programowanie w VB Proste algorytmy sortowania

Programowanie w VB Proste algorytmy sortowania Programowanie w VB Proste algorytmy sortowania Sortowanie bąbelkowe Algorytm sortowania bąbelkowego polega na porównywaniu par elementów leżących obok siebie i, jeśli jest to potrzebne, zmienianiu ich

Bardziej szczegółowo

Wykład 5. Sortowanie w czasie liniowologarytmicznym

Wykład 5. Sortowanie w czasie liniowologarytmicznym Wykład 5 Sortowanie w czasie liniowologarytmicznym 1 Sortowanie - zadanie Definicja (dla liczb): wejście: ciąg n liczb A = (a 1, a 2,, a n ) wyjście: permutacja (a 1,, a n ) taka, że a 1 a n 2 Zestawienie

Bardziej szczegółowo

Sortowanie - wybrane algorytmy

Sortowanie - wybrane algorytmy Sortowanie - wybrane algorytmy Aleksandra Wilkowska Wydział Matematyki - Katedra Matematyki Stosowanej Politechika Wrocławska 2 maja 2018 1 / 39 Plan prezentacji Złożoność obliczeniowa Sortowanie bąbelkowe

Bardziej szczegółowo

Sortowanie danych. Jolanta Bachan. Podstawy programowania

Sortowanie danych. Jolanta Bachan. Podstawy programowania Sortowanie danych Podstawy programowania 2013-06-06 Sortowanie przez wybieranie 9 9 9 9 9 9 10 7 7 7 7 7 10 9 1 3 3 4 10 7 7 10 10 10 10 4 4 4 4 4 4 3 3 3 3 2 2 2 2 2 2 2 3 1 1 1 1 1 1 Gurbiel et al. 2000

Bardziej szczegółowo

Algorytm selekcji Hoare a. Łukasz Miemus

Algorytm selekcji Hoare a. Łukasz Miemus Algorytm selekcji Hoare a Łukasz Miemus 1 lutego 2006 Rozdział 1 O algorytmie 1.1 Problem Mamy tablicę A[N] różnych elementów i zmienną int K, takie że 1 K N. Oczekiwane rozwiązanie to określenie K-tego

Bardziej szczegółowo

Zaawansowane algorytmy i struktury danych

Zaawansowane algorytmy i struktury danych Zaawansowane algorytmy i struktury danych u dr Barbary Marszał-Paszek Opracowanie pytań praktycznych z egzaminów. Strona 1 z 12 Pytania praktyczne z kolokwium zaliczeniowego z 19 czerwca 2014 (studia dzienne)

Bardziej szczegółowo

Wybrane algorytmy tablicowe

Wybrane algorytmy tablicowe Wybrane algorytmy tablicowe Algorytmy i struktury danych Wykład 2. Rok akademicki: 2009/2010 Sortowanie przez wybieranie for (int i = 0; i < liczby.length - 1; i++) k = i; for (int j = i; j < liczby.length;

Bardziej szczegółowo

Algorytmy i struktury danych. Wykład 4

Algorytmy i struktury danych. Wykład 4 Wykład 4 Różne algorytmy - obliczenia 1. Obliczanie wartości wielomianu 2. Szybkie potęgowanie 3. Algorytm Euklidesa, liczby pierwsze, faktoryzacja liczby naturalnej 2017-11-24 Algorytmy i struktury danych

Bardziej szczegółowo

PROBLEMATYKA BEZPIECZEŃSTWA SIECI RADIOWYCH Algorytm szyfrowania AES. Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

PROBLEMATYKA BEZPIECZEŃSTWA SIECI RADIOWYCH Algorytm szyfrowania AES. Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska PROBLEMATYKA BEZPIECZEŃSTWA SIECI RADIOWYCH Algorytm szyfrowania AES Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska Wprowadzenie Problemy bezpieczeństwa transmisji Rozwiązania stosowane dla

Bardziej szczegółowo

znalezienia elementu w zbiorze, gdy w nim jest; dołączenia nowego elementu w odpowiednie miejsce, aby zbiór pozostał nadal uporządkowany.

znalezienia elementu w zbiorze, gdy w nim jest; dołączenia nowego elementu w odpowiednie miejsce, aby zbiór pozostał nadal uporządkowany. Przedstawiamy algorytmy porządkowania dowolnej liczby elementów, którymi mogą być liczby, jak również elementy o bardziej złożonej postaci (takie jak słowa i daty). Porządkowanie, nazywane również często

Bardziej szczegółowo

EGZAMIN MATURALNY Z INFORMATYKI. 10 maja 2017 POZIOM ROZSZERZONY. Godzina rozpoczęcia: 14:00 CZĘŚĆ I

EGZAMIN MATURALNY Z INFORMATYKI. 10 maja 2017 POZIOM ROZSZERZONY. Godzina rozpoczęcia: 14:00 CZĘŚĆ I Arkusz zawiera informacje prawnie chronione do momentu rozpoczęcia egzaminu. Układ graficzny CKE 2013 KOD UZUPEŁNIA ZDAJĄCY PESEL miejsce na naklejkę EGZAMIN MATURALNY Z INFORMATYKI POZIOM ROZSZERZONY

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

2 Kryptografia: algorytmy symetryczne

2 Kryptografia: algorytmy symetryczne 1 Kryptografia: wstęp Wyróżniamy algorytmy: Kodowanie i kompresja Streszczenie Wieczorowe Studia Licencjackie Wykład 14, 12.06.2007 symetryczne: ten sam klucz jest stosowany do szyfrowania i deszyfrowania;

Bardziej szczegółowo

INFORMATYKA SORTOWANIE DANYCH.

INFORMATYKA SORTOWANIE DANYCH. INFORMATYKA SORTOWANIE DANYCH http://www.infoceram.agh.edu.pl SORTOWANIE Jest to proces ustawiania zbioru obiektów w określonym porządku. Sortowanie stosowane jest w celu ułatwienia późniejszego wyszukania

Bardziej szczegółowo

Ataki na RSA. Andrzej Chmielowiec. Centrum Modelowania Matematycznego Sigma. Ataki na RSA p. 1

Ataki na RSA. Andrzej Chmielowiec. Centrum Modelowania Matematycznego Sigma. Ataki na RSA p. 1 Ataki na RSA Andrzej Chmielowiec andrzej.chmielowiec@cmmsigma.eu Centrum Modelowania Matematycznego Sigma Ataki na RSA p. 1 Plan prezentacji Wprowadzenie Ataki algebraiczne Ataki z kanałem pobocznym Podsumowanie

Bardziej szczegółowo

PROBLEMATYKA BEZPIECZEŃSTWA SIECI RADIOWYCH Algorytm szyfrowania AES. Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

PROBLEMATYKA BEZPIECZEŃSTWA SIECI RADIOWYCH Algorytm szyfrowania AES. Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska PROBLEMATYKA BEZPIECZEŃSTWA SIECI RADIOWYCH Algorytm szyfrowania AES Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska Wprowadzenie Problemy bezpieczeństwa transmisji Rozwiązania stosowane dla

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

Algorytmy asymetryczne

Algorytmy asymetryczne Algorytmy asymetryczne Klucze występują w parach jeden do szyfrowania, drugi do deszyfrowania (niekiedy klucze mogą pracować zamiennie ) Opublikowanie jednego z kluczy nie zdradza drugiego, nawet gdy można

Bardziej szczegółowo

Sortowanie bąbelkowe

Sortowanie bąbelkowe 1/98 Sortowanie bąbelkowe (Bubble sort) prosty i nieefektywny algorytm sortowania wielokrotnie przeglądamy listę elementów, porównując dwa sąsiadujące i zamieniając je miejscami, jeśli znajdują się w złym

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

Wrocław, Wstęp do informatyki i programowania: liczby pierwsze. Wydział Matematyki Politechniki Wrocławskiej.

Wrocław, Wstęp do informatyki i programowania: liczby pierwsze. Wydział Matematyki Politechniki Wrocławskiej. Wrocław, 28.11.2017 Wstęp do informatyki i programowania: liczby pierwsze Wydział Matematyki Politechniki Wrocławskiej Andrzej Giniewicz Dzisiaj na zajęciach... Zajmiemy się liczbami pierwszymi... liczby

Bardziej szczegółowo

Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami

Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami Przykład 1. Napisz program, który dla podanej liczby n wypisze jej rozkład na czynniki pierwsze. Oblicz asymptotyczną złożoność

Bardziej szczegółowo

Podstawy Informatyki dla Nauczyciela

Podstawy Informatyki dla Nauczyciela Podstawy Informatyki dla Nauczyciela Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 2 Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 2 1 / 1 Informacja

Bardziej szczegółowo

Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne

Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne Algorytmy i struktury danych Wykład VIII Elementarne techniki algorytmiczne Co dziś? Algorytmy zachłanne (greedyalgorithms) 2 Tytułem przypomnienia metoda dziel i zwyciężaj. Problem można podzielić na

Bardziej szczegółowo

Algorytmy i struktury danych Sortowanie IS/IO, WIMiIP

Algorytmy i struktury danych Sortowanie IS/IO, WIMiIP Algorytmy i struktury danych Sortowanie IS/IO, WIMiIP Danuta Szeliga AGH Kraków Spis treści I 1 Wstęp 2 Metody proste 3 Szybkie metody sortowania 4 Algorytmy hybrydowe Sortowanie hybrydowe Sortowanie introspektywne

Bardziej szczegółowo

Wybrane zagadnienia teorii liczb

Wybrane zagadnienia teorii liczb Wybrane zagadnienia teorii liczb Podzielność liczb NWW, NWD, Algorytm Euklidesa Arytmetyka modularna Potęgowanie modularne Małe twierdzenie Fermata Liczby pierwsze Kryptosystem RSA Podzielność liczb Relacja

Bardziej szczegółowo

Algorytmy i Struktury Danych, 2. ćwiczenia

Algorytmy i Struktury Danych, 2. ćwiczenia Algorytmy i Struktury Danych, 2. ćwiczenia 2017-10-13 Spis treści 1 Optymalne sortowanie 5 ciu elementów 1 2 Sortowanie metodą Shella 2 3 Przesunięcie cykliczne tablicy 3 4 Scalanie w miejscu dla ciągów

Bardziej szczegółowo

Algorytmy sortujące i wyszukujące

Algorytmy sortujące i wyszukujące Algorytmy sortujące i wyszukujące Zadaniem algorytmów sortujących jest ułożenie elementów danego zbioru w ściśle określonej kolejności. Najczęściej wykorzystywany jest porządek numeryczny lub leksykograficzny.

Bardziej szczegółowo

Struktury Danych i Złożoność Obliczeniowa

Struktury Danych i Złożoność Obliczeniowa Struktury Danych i Złożoność Obliczeniowa Zajęcia 2 Algorytmy wyszukiwania, sortowania i selekcji Sortowanie bąbelkowe Jedna z prostszych metod sortowania, sortowanie w miejscu? Sortowanie bąbelkowe Pierwsze

Bardziej szczegółowo

Strategia "dziel i zwyciężaj"

Strategia dziel i zwyciężaj Strategia "dziel i zwyciężaj" W tej metodzie problem dzielony jest na kilka mniejszych podproblemów podobnych do początkowego problemu. Problemy te rozwiązywane są rekurencyjnie, a następnie rozwiązania

Bardziej szczegółowo

WYKŁAD 9. Algorytmy sortowania elementów zbioru (tablic) Programy: c4_1.c... c4_3.c. Tomasz Zieliński

WYKŁAD 9. Algorytmy sortowania elementów zbioru (tablic) Programy: c4_1.c... c4_3.c. Tomasz Zieliński WYKŁAD 9 Algorytmy sortowania elementów zbioru (tablic) Programy: c4_1.c... c4_3.c Tomasz Zieliński /* Przyklad 4.1 - SORTOWANIE TABLIC - metoda najprostsza */ #include #define ROZMIAR 11 void

Bardziej szczegółowo

PODSTAWY INFORMATYKI wykład 10.

PODSTAWY INFORMATYKI wykład 10. PODSTAWY INFORMATYKI wykład 10. Adrian Horzyk Web: http://home.agh.edu.pl/~horzyk/ E-mail: horzyk@agh.edu.pl Google: Adrian Horzyk Gabinet: paw. D13 p. 325 Akademia Górniczo-Hutniacza w Krakowie WEAIiE,

Bardziej szczegółowo

Sortowanie w czasie liniowym

Sortowanie w czasie liniowym Sortowanie w czasie liniowym 1 Sortowanie - zadanie Definicja (dla liczb): wejście: ciąg n liczb A = (a 1, a 2,, a n ) wyjście: permutacja (a 1,, a n ) taka, że a 1 a n Po co sortować? Podstawowy problem

Bardziej szczegółowo

Algorytmy i złożoność obliczeniowa. Wojciech Horzelski

Algorytmy i złożoność obliczeniowa. Wojciech Horzelski Algorytmy i złożoność obliczeniowa Wojciech Horzelski 1 Tematyka wykładu Ø Ø Ø Ø Ø Wprowadzenie Poprawność algorytmów (elementy analizy algorytmów) Wyszukiwanie Sortowanie Elementarne i abstrakcyjne struktury

Bardziej szczegółowo

Algorytmy w teorii liczb

Algorytmy w teorii liczb Łukasz Kowalik, ASD 2004: Algorytmy w teorii liczb 1 Algorytmy w teorii liczb Teoria liczb jest działem matemtyki dotyczącym własności liczb naturalnych. Rozważa się zagadnienia związane z liczbami pierwszymi,

Bardziej szczegółowo

Bezpieczeństwo systemów komputerowych. Algorytmy kryptograficzne (1) Algorytmy kryptograficzne. Algorytmy kryptograficzne BSK_2003

Bezpieczeństwo systemów komputerowych. Algorytmy kryptograficzne (1) Algorytmy kryptograficzne. Algorytmy kryptograficzne BSK_2003 Bezpieczeństwo systemów komputerowych Algorytmy kryptograficzne (1) mgr Katarzyna Trybicka-Francik kasiat@zeus.polsl.gliwice.pl pok. 503 Algorytmy kryptograficzne Przestawieniowe zmieniają porządek znaków

Bardziej szczegółowo

Zaawansowane algorytmy i struktury danych

Zaawansowane algorytmy i struktury danych Zaawansowane algorytmy i struktury danych u dr Barbary Marszał-Paszek Opracowanie pytań teoretycznych z egzaminów. Strona 1 z 12 Pytania teoretyczne z egzaminu pisemnego z 25 czerwca 2014 (studia dzienne)

Bardziej szczegółowo

Spis treści. Przedmowa... 9

Spis treści. Przedmowa... 9 Spis treści Przedmowa... 9 1. Algorytmy podstawowe... 13 1.1. Uwagi wstępne... 13 1.2. Dzielenie liczb całkowitych... 13 1.3. Algorytm Euklidesa... 20 1.4. Najmniejsza wspólna wielokrotność... 23 1.5.

Bardziej szczegółowo

Algorytmy i struktury danych

Algorytmy i struktury danych Letnie Warsztaty Matematyczno-Informatyczne Algorytmy i struktury danych Mariusz Różycki University of Cambridge Zajęcia będą mieć formę wykładową. Slajdy można znaleźć na stronie kursu: http://lw.mi.edu.pl/informatyka/algorytmy.

Bardziej szczegółowo

Jeszcze o algorytmach

Jeszcze o algorytmach Jeszcze o algorytmach Przykłady różnych, podstawowych algorytmów 11.01.2018 M. Rad Plan Powtórka Znajdowanie najmniejszego elementu Segregowanie Poszukiwanie przez połowienie Wstawianie Inne algorytmy

Bardziej szczegółowo

PRÓBNY EGZAMIN MATURALNY Z INFORMATYKI

PRÓBNY EGZAMIN MATURALNY Z INFORMATYKI PRÓBNY EGZAMIN MATURALNY Z INFORMATYKI POZIOM PODSTAWOWY Arkusz I Instrukcja dla zdającego 1. Sprawdź, czy arkusz egzaminacyjny zawiera 8 stron (zadania 1 3). Ewentualny brak zgłoś przewodniczącemu zespołu

Bardziej szczegółowo

Kryptografia-0. przykład ze starożytności: około 489 r. p.n.e. niewidzialny atrament (pisze o nim Pliniusz Starszy I wiek n.e.)

Kryptografia-0. przykład ze starożytności: około 489 r. p.n.e. niewidzialny atrament (pisze o nim Pliniusz Starszy I wiek n.e.) Kryptografia-0 -zachowanie informacji dla osób wtajemniczonych -mimo że włamujący się ma dostęp do informacji zaszyfrowanej -mimo że włamujący się zna (?) stosowaną metodę szyfrowania -mimo że włamujący

Bardziej szczegółowo

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 15, Kryptografia: algorytmy asymetryczne (RSA)

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 15, Kryptografia: algorytmy asymetryczne (RSA) Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 15, 19.06.2005 1 Kryptografia: algorytmy asymetryczne (RSA) Niech E K (x) oznacza szyfrowanie wiadomości x kluczem K (E od encrypt, D K (x)

Bardziej szczegółowo

II klasa informatyka rozszerzona SZYFROWANIE INFORMACJI

II klasa informatyka rozszerzona SZYFROWANIE INFORMACJI II klasa informatyka rozszerzona SZYFROWANIE INFORMACJI STEGANOGRAFIA Steganografia jest nauką o komunikacji w taki sposób by obecność komunikatu nie mogła zostać wykryta. W odróżnieniu od kryptografii

Bardziej szczegółowo

Algorytmy i Struktury Danych.

Algorytmy i Struktury Danych. Algorytmy i Struktury Danych. Grafy dr hab. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 9 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 1 / 20

Bardziej szczegółowo

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 14, Kryptografia: algorytmy asymetryczne (RSA)

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 14, Kryptografia: algorytmy asymetryczne (RSA) Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 14, 7.06.2005 1 Kryptografia: algorytmy asymetryczne (RSA) Niech E K (x) oznacza szyfrowanie wiadomości x kluczem K (E od encrypt, D K (x)

Bardziej szczegółowo

Wykład VII. Kryptografia Kierunek Informatyka - semestr V. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej

Wykład VII. Kryptografia Kierunek Informatyka - semestr V. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej Wykład VII Kierunek Informatyka - semestr V Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Problem pakowania plecaka System kryptograficzny Merklego-Hellmana

Bardziej szczegółowo

2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0,

2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0, 2 Arytmetyka Niech b = d r d r 1 d 1 d 0 będzie zapisem liczby w systemie dwójkowym Zamiana zapisu liczby b na system dziesiętny odbywa się poprzez wykonanie dodawania d r 2 r + d r 1 2 r 1 d 1 2 1 + d

Bardziej szczegółowo

INŻYNIERIA BEZPIECZEŃSTWA LABORATORIUM NR 2 ALGORYTM XOR ŁAMANIE ALGORYTMU XOR

INŻYNIERIA BEZPIECZEŃSTWA LABORATORIUM NR 2 ALGORYTM XOR ŁAMANIE ALGORYTMU XOR INŻYNIERIA BEZPIECZEŃSTWA LABORATORIUM NR 2 ALGORYTM XOR ŁAMANIE ALGORYTMU XOR 1. Algorytm XOR Operacja XOR to inaczej alternatywa wykluczająca, oznaczona symbolem ^ w języku C i symbolem w matematyce.

Bardziej szczegółowo

Wstęp do Informatyki

Wstęp do Informatyki Wstęp do Informatyki Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 4 Bożena Woźna-Szcześniak (AJD) Wstęp do Informatyki Wykład 4 1 / 1 DZIELENIE LICZB BINARNYCH Dzielenie

Bardziej szczegółowo

LICZBY PIERWSZE. 14 marzec 2007. Jeśli matematyka jest królową nauk, to królową matematyki jest teoria liczb. C.F.

LICZBY PIERWSZE. 14 marzec 2007. Jeśli matematyka jest królową nauk, to królową matematyki jest teoria liczb. C.F. Jeśli matematyka jest królową nauk, to królową matematyki jest teoria liczb. C.F. Gauss (1777-1855) 14 marzec 2007 Zasadnicze twierdzenie teorii liczb Zasadnicze twierdzenie teorii liczb Ile jest liczb

Bardziej szczegółowo

Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1.

Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1. Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1. Grażyna Koba MIGRA 2019 Spis treści (propozycja na 2*32 = 64 godziny lekcyjne) Moduł A. Wokół komputera i sieci komputerowych

Bardziej szczegółowo

Sortowanie. Bartman Jacek Algorytmy i struktury

Sortowanie. Bartman Jacek Algorytmy i struktury Sortowanie Bartman Jacek jbartman@univ.rzeszow.pl Algorytmy i struktury danych Sortowanie przez proste wstawianie przykład 41 56 17 39 88 24 03 72 41 56 17 39 88 24 03 72 17 41 56 39 88 24 03 72 17 39

Bardziej szczegółowo

Zasady analizy algorytmów

Zasady analizy algorytmów Zasady analizy algorytmów A więc dziś w programie: - Kilka ważnych definicji i opisów formalnych - Złożoność: czasowa i pamięciowa - Kategorie problemów - Jakieś przykłady Problem: Zadanie możliwe do rozwiązania

Bardziej szczegółowo

Temat 7. Najlżejsze i najcięższe algorytmy sortowania

Temat 7. Najlżejsze i najcięższe algorytmy sortowania Temat 7 Najlżejsze i najcięższe algorytmy sortowania Streszczenie Komputery są często używane porządkowania różnych danych, na przykład nazwisk (w porządku alfabetycznym), terminów spotkań lub e-maili

Bardziej szczegółowo

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI Arytmetyka komputera Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka Opracował: Kamil Kowalski klasa III TI Spis treści 1. Jednostki informacyjne 2. Systemy liczbowe 2.1. System

Bardziej szczegółowo

Zamiana porcji informacji w taki sposób, iż jest ona niemożliwa do odczytania dla osoby postronnej. Tak zmienione dane nazywamy zaszyfrowanymi.

Zamiana porcji informacji w taki sposób, iż jest ona niemożliwa do odczytania dla osoby postronnej. Tak zmienione dane nazywamy zaszyfrowanymi. Spis treści: Czym jest szyfrowanie Po co nam szyfrowanie Szyfrowanie symetryczne Szyfrowanie asymetryczne Szyfrowanie DES Szyfrowanie 3DES Szyfrowanie IDEA Szyfrowanie RSA Podpis cyfrowy Szyfrowanie MD5

Bardziej szczegółowo

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2014/15 Znajdowanie maksimum w zbiorze

Bardziej szczegółowo

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 5

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś   Wykład 5 Kryptografia z elementami kryptografii kwantowej Ryszard Tanaś http://zon8.physd.amu.edu.pl/~tanas Wykład 5 Spis treści 9 Algorytmy asymetryczne RSA 3 9.1 Algorytm RSA................... 4 9.2 Szyfrowanie.....................

Bardziej szczegółowo

KONSPEKT ZAJĘĆ KOŁA INFORMATYCZNEGO LUB MATEMATYCZNEGO W KLASIE III GIMNAZJUM LUB I LICEUM ( 2 GODZ.)

KONSPEKT ZAJĘĆ KOŁA INFORMATYCZNEGO LUB MATEMATYCZNEGO W KLASIE III GIMNAZJUM LUB I LICEUM ( 2 GODZ.) Joanna Osio asiaosio@poczta.onet.pl Nauczycielka matematyki w Gimnazjum im. Macieja Rataja w Żmigrodzie KONSPEKT ZAJĘĆ KOŁA INFORMATYCZNEGO LUB MATEMATYCZNEGO W KLASIE III GIMNAZJUM LUB I LICEUM ( 2 GODZ.)

Bardziej szczegółowo

PRÓBNY EGZAMIN MATURALNY Z INFORMATYKI

PRÓBNY EGZAMIN MATURALNY Z INFORMATYKI PRÓBNY EGZAMIN MATURALNY Z INFORMATYKI POZIOM ROZSZERZONY ARKUSZ I STYCZEŃ 2014 Instrukcja dla zdającego 1. Sprawdź, czy arkusz egzaminacyjny zawiera 9 stron (zadania 1 3). Ewentualny brak zgłoś przewodniczącemu

Bardziej szczegółowo

Podstawy Informatyki. Metalurgia, I rok. Wykład 5 Rekurencja

Podstawy Informatyki. Metalurgia, I rok. Wykład 5 Rekurencja Podstawy Informatyki Metalurgia, I rok Wykład 5 Rekurencja Rekurencja z łacińskiego oznacza to przybiec z powrotem - osiągniesz rzecz wielką, jeśli zawrócisz po to, by osiągnąć rzeczy małe Przykład: Małe

Bardziej szczegółowo

Podstawy Informatyki. Metalurgia, I rok. Rekurencja. skomplikowane zadanie. Rekurencja

Podstawy Informatyki. Metalurgia, I rok. Rekurencja. skomplikowane zadanie. Rekurencja Podstawy Informatyki Metalurgia, I rok Rekurencja z łacińskiego oznacza to przybiec z powrotem - osiągniesz rzecz wielką, jeśli zawrócisz po to, by osiągnąć rzeczy małe Małe dziecko otrzymuje polecenie

Bardziej szczegółowo

Algorytmy i Struktury Danych.

Algorytmy i Struktury Danych. Algorytmy i Struktury Danych. Liniowe struktury danych - Lista Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 5 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych.

Bardziej szczegółowo

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 7

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś  Wykład 7 Kryptografia z elementami kryptografii kwantowej Ryszard Tanaś http://zon8.physd.amu.edu.pl/~tanas Wykład 7 Spis treści 11 Algorytm ElGamala 3 11.1 Wybór klucza.................... 3 11.2 Szyfrowanie.....................

Bardziej szczegółowo

Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to

Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to wprowadzili J. Hartmanis i R. Stearns. Najczęściej przez zasób rozumie się czas oraz pamięć dlatego

Bardziej szczegółowo

Algorytmy i struktury danych. Wykład 6 Tablice rozproszone cz. 2

Algorytmy i struktury danych. Wykład 6 Tablice rozproszone cz. 2 Algorytmy i struktury danych Wykład 6 Tablice rozproszone cz. 2 Na poprzednim wykładzie Wiele problemów wymaga dynamicznych zbiorów danych, na których można wykonywać operacje: wstawiania (Insert) szukania

Bardziej szczegółowo

Sortowanie. Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania:

Sortowanie. Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania: Sortowanie Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania: podać strukturę danych dla elementów dynamicznego skończonego multi-zbioru S, względem którego są wykonywane następujące

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Wykład 5 Podstawowe techniki programownia w przykładach Janusz Szwabiński Plan wykładu: Metoda babilońska wyliczania pierwiastka Liczby pierwsze i sito Eratostenesa Metoda bisekcji

Bardziej szczegółowo

Podstawy Informatyki. Inżynieria Ciepła, I rok. Iteracja warunkowadopóki(while) Blok instrukcji. Pascal: begin instrukcja1; C: { end;

Podstawy Informatyki. Inżynieria Ciepła, I rok. Iteracja warunkowadopóki(while) Blok instrukcji. Pascal: begin instrukcja1; C: { end; Podstawy Informatyki Inżyria Ciepła, I rok Wykład 8 Algorytmy, cd Instrukcja decyzyjna wybierz Zda wybierz służy do wyboru jednej z kilku możliwości Ma ono postać: wybierz przełącznik z wartość_1: zda_1

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

Przykładowe zadania z teorii liczb

Przykładowe zadania z teorii liczb Przykładowe zadania z teorii liczb I. Podzielność liczb całkowitych. Liczba a = 346 przy dzieleniu przez pewną liczbę dodatnią całkowitą b daje iloraz k = 85 i resztę r. Znaleźć dzielnik b oraz resztę

Bardziej szczegółowo

Luty 2001 Algorytmy (4) 2000/2001

Luty 2001 Algorytmy (4) 2000/2001 Mając dany zbiór elementów, chcemy znaleźć w nim element największy (maksimum), bądź najmniejszy (minimum). We wszystkich naturalnych metodach znajdywania najmniejszego i największego elementu obecne jest

Bardziej szczegółowo

n = p q, (2.2) przy czym p i q losowe duże liczby pierwsze.

n = p q, (2.2) przy czym p i q losowe duże liczby pierwsze. Wykład 2 Temat: Algorytm kryptograficzny RSA: schemat i opis algorytmu, procedura szyfrowania i odszyfrowania, aspekty bezpieczeństwa, stosowanie RSA jest algorytmem z kluczem publicznym i został opracowany

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

Zapisywanie algorytmów w języku programowania

Zapisywanie algorytmów w języku programowania Temat C5 Zapisywanie algorytmów w języku programowania Cele edukacyjne Zrozumienie, na czym polega programowanie. Poznanie sposobu zapisu algorytmu w postaci programu komputerowego. Zrozumienie, na czym

Bardziej szczegółowo

Algorytmy równoległe. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010

Algorytmy równoległe. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010 Algorytmy równoległe Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka Znajdowanie maksimum w zbiorze n liczb węzły - maksimum liczb głębokość = 3 praca = 4++ = 7 (operacji) n - liczność

Bardziej szczegółowo

Algorytmy sortujące 1

Algorytmy sortujące 1 Algorytmy sortujące 1 Sortowanie Jeden z najczęściej występujących, rozwiązywanych i stosowanych problemów. Ułożyć elementy listy (przyjmujemy: tablicy) w rosnącym porządku Sortowanie może być oparte na

Bardziej szczegółowo

PODSTAWY INFORMATYKI wykład 5.

PODSTAWY INFORMATYKI wykład 5. PODSTAWY INFORMATYKI wykład 5. Adrian Horzyk Web: http://home.agh.edu.pl/~horzyk/ E-mail: horzyk@agh.edu.pl Google: Adrian Horzyk Gabinet: paw. D13 p. 325 Akademia Górniczo-Hutnicza w Krakowie WEAIiE,

Bardziej szczegółowo

1. Znajdowanie miejsca zerowego funkcji metodą bisekcji.

1. Znajdowanie miejsca zerowego funkcji metodą bisekcji. 1. Znajdowanie miejsca zerowego funkcji metodą bisekcji. Matematyczna funkcja f ma być określona w programie w oddzielnej funkcji języka C (tak, aby moŝna było łatwo ją zmieniać). Przykładowa funkcja to:

Bardziej szczegółowo