Wprowadzenie do algorytmów / Thomas H. Cormen [et al.]. - wyd. 7. Warszawa, Spis treści. Wprowadzenie 2

Podobne dokumenty
Egzamin, AISDI, I termin, 18 czerwca 2015 r.

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

Zaawansowane algorytmy i struktury danych

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew

Załącznik Nr 5 do Zarz. Nr 33/11/ Kod przedmiotu:aisd2

Matematyka dyskretna

Grafy i sieci w informatyce - opis przedmiotu

Rozdział 4. Algorytmy sortowania 73 Rozdział 5. Typy i struktury danych 89 Rozdział 6. Derekursywacja i optymalizacja algorytmów 147

Algorytmy i struktury danych.

ID2ZSD2 Złożone struktury danych Advanced data structures. Informatyka II stopień ogólnoakademicki stacjonarne

Wykład 8. Drzewo rozpinające (minimum spanning tree)

Złożoność obliczeniowa klasycznych problemów grafowych

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Algorytmy i struktury danych, C3

Wybrane wymagania dla informatyki w gimnazjum i liceum z podstawy programowej

Spis treści. Rozdział 2. Rekurencja Definicja rekurencji Ilustracja pojęcia rekurencji Jak wykonują się programy rekurencyjne?...

KARTA PRZEDMIOTU. Algorytmy i struktury danych, C4

KARTA KURSU. Algorytmy, struktury danych i techniki programowania. Algorithms, Data Structures and Programming Techniques

IZ2ZSD2 Złożone struktury danych Advanced data structures. Informatyka II stopień ogólnoakademicki niestacjonarne

Sortowanie - wybrane algorytmy

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne

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

Literatura. 1) Pojęcia: złożoność czasowa, rząd funkcji. Aby wyznaczyć pesymistyczną złożoność czasową algorytmu należy:

Programowanie dynamiczne i algorytmy zachłanne

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA Pod auspicjami Polskiej Akademii Nauk Warszawa, ul. Newelska 6, tel.

Wykłady specjalistyczne. (Matematyka w finansach i ekonomii; Matematyczne metody informatyki)

PRZEWODNIK PO PRZEDMIOCIE

Zał nr 4 do ZW. Dla grupy kursów zaznaczyć kurs końcowy. Liczba punktów ECTS charakterze praktycznym (P)

Matematyczne Podstawy Informatyki

Matematyka dyskretna

Zagadnienia na egzamin licencjacki

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA Realizacja w roku akademickim 2016/17

Algorytmy i struktury danych Metody programowania Języki i paradygmaty programowania Nazwa jednostki prowadzącej przedmiot Instytut Matematyki

Wykłady specjalistyczne. (Matematyka w finansach i ekonomii; Matematyczne metody informatyki)

Sprawozdanie do zadania numer 2

TEORETYCZNE PODSTAWY INFORMATYKI

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2012/2013. Algorytmy i struktury danych

Prawie 25 lat Olimpiady Informatycznej

koordynator modułu dr hab. Michał Baczyński rok akademicki 2012/2013

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

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

Algorytmy i Struktury Danych.

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

Wykład 3. Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy

PRZEWODNIK PO PRZEDMIOCIE

PRZEDMIOTOWY SYSTEM OCENIANIA INFORMATYKA. KLASA 2F

Sylabus modułu: Matematyczne podstawy informatyki (kod modułu:03-mo2n-12-mpln)

Wymagania edukacyjne i sposoby sprawdzania edukacyjnych osiągnięć uczniów z informatyki - klasy II zakres rozszerzony

Matematyczne podstawy informatyki Mathematical Foundations of Computational Sciences. Matematyka Poziom kwalifikacji: II stopnia

Algorytmy grafowe. Wykład 1 Podstawy teorii grafów Reprezentacje grafów. Tomasz Tyksiński CDV

KARTA MODUŁU KSZTAŁCENIA

Struktury danych i złozoność obliczeniowa. Prof. dr hab. inż. Jan Magott

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2012/2013. Projektowanie i analiza algorytmów

Porównanie algorytmów wyszukiwania najkrótszych ścieżek międz. grafu. Daniel Golubiewski. 22 listopada Instytut Informatyki

Sortowanie przez scalanie

Algorytmy dynamiczne. Piotr Sankowski. - p. 1/14

Algorytmy i Struktury Danych, 9. ćwiczenia

Kierunek: Informatyka. Przedmiot:

Grafy i Zastosowania. 5: Drzewa Rozpinające. c Marcin Sydow. Drzewa rozpinające. Cykle i rozcięcia fundamentalne. Zastosowania

Rekurencje. Jeśli algorytm zawiera wywołanie samego siebie, jego czas działania moŝe być określony rekurencją. Przykład: sortowanie przez scalanie:

Spis treści. Przedmowa. Wprowadzenie 0.1 Czym jest matematyka dyskretna?... XIII 0.2 Podstawowa literatura... XIV

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

Złożoność algorytmów. Wstęp do Informatyki

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

Haszowanie. dr inż. Urszula Gałązka

Techniki konstruowania algorytmów. Metoda dziel i zwyciężaj

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne

Szczegółowy program kursów szkoły programowania Halpress

Jeśli czas działania algorytmu zależy nie tylko od rozmiaru danych wejściowych i przyjmuje różne wartości dla różnych danych o tym samym rozmiarze,

Złożoność obliczeniowa zadania, zestaw 2

Programowanie dynamiczne cz. 2

KARTA MODUŁU KSZTAŁCENIA

Algorytmy i Struktury Danych.

Spis treści. Przedmowa... 9

Wstęp do rachunku prawdopodobieństwa. Cz. 2 / William Feller. wyd. 4, dodr. 3. Warszawa, Spis treści

Zadania do wykładu ALGORYTMY I STRUKTURY DANYCH

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II

Analiza algorytmów zadania podstawowe

Zał nr 4 do ZW. Dla grupy kursów zaznaczyć kurs końcowy. Liczba punktów ECTS charakterze praktycznym (P)

Wstęp do programowania

Graf. Definicja marca / 1

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA Pod auspicjami Polskiej Akademii Nauk Warszawa, ul. Newelska 6, tel.

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2014/2015. Drzewa BST c.d., równoważenie drzew, kopce.

Wykłady z Matematyki Dyskretnej

WYMAGANIA EGZAMINACYJNE Egzamin maturalny z INFORMATYKI

[12] Metody projektowania algorytmów (dziel i rządź, programowanie dynamiczne i algorytmy zachłanne).

prowadzący dr ADRIAN HORZYK /~horzyk tel.: Konsultacje paw. D-13/325

Wykład 5. Sortowanie w czasie liniowologarytmicznym

Sortowanie. Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania:

Struktury danych i złożoność obliczeniowa. Prof. dr hab. inż. Jan Magott

Sortowanie danych. Jolanta Bachan. Podstawy programowania

1. Algorytmika. WPROWADZENIE DO ALGORYTMIKI Wprowadzenie do algorytmów. Pojęcie algorytmu.

Zadania z egzaminów z Algorytmiki

WSTĘP DO INFORMATYKI. Złożoność obliczeniowa, efektywność i algorytmy sortowania

Rok akademicki: 2018/2019 Kod: ITE s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

Algorytmiczna teoria grafów

Roman Mocek Zabrze Opracowanie zbiorcze ze źródeł Scholaris i CKE

Algorytmy i Struktury Danych

Luty 2001 Algorytmy (4) 2000/2001

Zbigniew Talaga Konsultacja: Janusz Mazur. Rozkład materiału propozycja

Transkrypt:

Wprowadzenie do algorytmów / Thomas H. Cormen [et al.]. - wyd. 7. Warszawa, 2012 Spis treści Przedmowa XIII Część I Podstawy Wprowadzenie 2 1. Rola algorytmów w obliczeniach 4 1.1. Algorytmy 4 1.2. Algorytmy jako technologia 10 2. Zaczynamy 15 2.1. Sortowanie przez wstawianie 15 2.2. Analiza algorytmów 22 2.3. Projektowanie algorytmów 29 2.3.1. Metoda dziel i zwycięŝaj" 29 2.3.2. Analiza algorytmów typu dziel i zwycięŝaj" 34 3. Rzędy wielkości funkcji 43 3.1. Notacja asymptotyczna 44 3.2. Standardowe notacje i typowe funkcje 53 4. Metoda dziel i zwycięŝaj" 65 4.1. Problem maksymalnej podtablicy 68 4.2. Algorytm Strassena mnoŝenia macierzy 75 4.3. Metoda podstawiania 83 4.4. Metoda drzewa rekursji 87 4.5. Metoda rekurencji uniwersalnej 93 4.6. Dowód twierdzenia o rekurencji uniwersalnej 96 4.6.1. Dowód dla dokładnych potęg 97 4.6.2. Podłogi i sufity 102 5. Analiza probabilistyczna i algorytmy randomizowane 112 5.1. Problem zatrudnienia sekretarki 112 5.2. Zmienne losowe wskaźnikowe 116 5.3. Algorytmy randomizowane 120 *5.4. Analiza probabilistyczna i dalsze zastosowania zmiennych losowych wskaźnikowych 128 5.4.1. Paradoks dnia urodzin 129 5.4.2. Kule i urny 132 5.4.3. Ciągi dobrej passy", czyli sukcesów 133 5.4.4. Problem on-line zatrudnienia sekretarki 138 Część II Sortowanie i statystyki pozycyjne Wprowadzenie 146

6. Heapsort - sortowanie przez kopcowanie 151 6.1. Kopce 151 6.2. Przywracanie własności kopca 154 6.3. Budowanie kopca 156 6.4. Algorytm sortowania przez kopcowanie (heapsort) 159 6.5. Kolejki priorytetowe 161 7. Quicksort - sortowanie szybkie 168 7.1. Opis algorytmu 168 7.2. Czas działania algorytmu quicksort 172 7.3. Randomizowana wersja algorytmu quicksort 177 7.4. Analiza algorytmu quicksort 178 7.4.1. Analiza przypadku pesymistycznego 178 7.4.2. Analiza oczekiwanego czasu działania 179 8. Sortowanie w czasie liniowym 188 8.1. Dolne ograniczenia dla problemu sortowania 189 8.2. Sortowanie przez zliczanie 191 8.3. Sortowanie pozycyjne 194 8.4. Sortowanie kubełkowe 198 9. Mediany i statystyki pozycyjne 210 9.1. Minimum i maksimum 211 9.2. Wybór w oczekiwanym czasie liniowym 212 9.3. Wybór w pesymistycznym czasie liniowym 217 Część III Struktury danych Wprowadzenie 226 10. Elementarne struktury danych 230 10.1. Stosy i kolejki 230 10.2. Listy (z dowiązaniami) 234 10.3. Reprezentowanie struktur wskaźnikowych za pomocą tablic 239 10.4. Reprezentowanie drzew (ukorzenionych) 244 11. Tablice z haszowaniem 251 11.1. Tablice z adresowaniem bezpośrednim 252 11.2. Tablice z haszowaniem 254 11.3. Funkcje haszujące 260 11.3.1. Haszowanie modularne 262 11.3.2. Haszowanie przez mnoŝenie 263 *11.3.3. Haszowanie uniwersalne 264 11.4. Adresowanie otwarte 269 * 11.5. Haszowanie doskonałe 278 12. Drzewa wyszukiwań binarnych 287 12.1. Co to jest drzewo wyszukiwań binarnych? 288 12.2. Wyszukiwanie w drzewie wyszukiwań binarnych 290 12.3. Wstawianie i usuwanie 295 * 12.4. Losowo skonstruowane drzewa wyszukiwań binarnych 300

13. Drzewa czerwono-czarne 309 13.1. Własności drzew czerwono-czarnych 309 13.2. Operacje rotacji 313 13.3. Operacja wstawiania 316 13.4. Operacja usuwania 324 14. Wzbogacanie struktur danych 341 14.1. Dynamiczne statystyki pozycyjne 342 14.2. Jak wzbogacać strukturę danych 347 14.3. Drzewa przedziałowe 351 Część IV Zaawansowane metody konstruowania i analizowania algorytmów Wprowadzenie 360 15. Programowanie dynamiczne 362 15.1. Rozcinanie pręta 363 15.2. MnoŜenie ciągu macierzy 374 15.3. Podstawy programowania dynamicznego 382 15.4. NajdłuŜszy wspólny podciąg 394 15.5. Optymalne drzewa wyszukiwań binarnych 401 16. Algorytmy zachłanne 419 16.1. Problem wyboru zajęć 420 16.2. Podstawy strategii zachłannej 428 16.3. Kody Huffmana 434 *16.4. Matroidy a strategie zachłanne 442 * 16.5. Problem szeregowania zadań 449 17. Analiza kosztu zamortyzowanego 457 17.1. Metoda kosztu sumarycznego 458 17.2. Metoda księgowania 462 17.3. Metoda potencjału 465 17.4. Tablice dynamiczne 469 17.4.1. Powiększanie tablicy 470 17.4.2. Powiększanie i zmniejszanie tablicy 474 Część V ZłoŜone struktury danych Wprowadzenie 488 18. B-drzewa 491 18.1. Definicja B-drzewa 496 18.2. Podstawowe operacje na B-drzewach 498 18.3. Usuwanie klucza z B-drzewa 506 19. Kopce Fibonacciego 513 19.1. Struktura kopców Fibonacciego 516 19.2. Operacje kopca złączalnego 518 19.3. Zmniejszanie wartości klucza i usuwanie węzła 527 19.4. Oszacowanie maksymalnego stopnia 531

20. Drzewa van Emde Boasa 540 20.1. Wstępne koncepcje 541 20.2. Struktura rekurencyjna 545 20.2.1. Prototypowe struktury van Emde Boasa 547 20.2.2. Operacje na prototypowej strukturze van Emde Boasa 549 20.3. Drzewo van Emde Boasa 555 20.3.1. Drzewa van Emde Boasa 555 20.3.2. Operacje na drzewie van Emde Boasa 559 21. Struktury danych dla zbiorów rozłącznych 571 21.1. Operacje na zbiorach rozłącznych 571 21.2. Listowa reprezentacja zbiorów rozłącznych 574 21.3. Lasy zbiorów rozłącznych 579 * 21.4. Analiza metody łączenia według rangi z kompresją ścieŝki 583 Część VI Algorytmy grafowe Wprowadzenie 598 22. Podstawowe algorytmy grafowe 600 22.1. Reprezentacja grafów 600 22.2. Przeszukiwanie wszerz 604 22.3. Przeszukiwanie w głąb 614 22.4. Sortowanie topologiczne 624 22.5. Silnie spójne składowe 627 23. Minimalne drzewa rozpinające 636 23.1. Rozrastanie się minimalnego drzewa rozpinającego 637 23.2. Algorytmy Kruskala i Prima 643 24. Najkrótsze ścieŝki z jednym źródtem 656 24.1. Algorytm Bellmana-Forda 664 24.2. Najkrótsze ścieŝki z jednym źródłem w acyklicznych grafach 668 24.3. AlgorytmDijkstry 671 24.4. Ograniczenia róŝnicowe i najkrótsze ścieŝki 678 24.5. Dowody własności najkrótszych ścieŝek 684 25. Najkrótsze ścieŝki między wszystkimi parami wierzchołków 698 25.1. Najkrótsze ścieŝki i mnoŝenie macierzy 700 25.2. Algorytm Floyda-Warshalla 707 25.3. Algorytm Johnsona dla grafów rzadkich 714 26. Maksymalny przepływ 723 26.1. Sieci przepływowe 724 26.2. Metoda Forda-Fulkersona 729 26.3. Najliczniejsze skojarzenia w grafach dwudzielnych 747 * 26.4. Algorytmy typu prześlij-przemianuj" 752 * 26.5. Algorytm przemianuj i przesuń na początek" 766 Część VII Wybrane zagadnienia Wprowadzenie 788

27. Algorytmy wielowątkowe 791 27.1. Podstawy dynamicznej wielowątkowości 794 27.2. Wielowątkowe mnoŝenie macierzy 812 27.3. Wielowątkowe sortowanie przez scalanie 817 28. Operacje na macierzach 833 28.1. Rozwiązywanie układów równań liniowych 833 28.2. Odwracanie macierzy 847 28.3. Symetryczne macierze dodatnio określone i metoda najmniejszych kwadratów 853 29. Programowanie liniowe 863 29.1. Postać standardowa i uzupełnieniowa 871 29.2. Formułowanie problemów w postaci programów liniowych 879 29.3. Algorytm sympleks 885 29.4. Dualność 901 29.5. Początkowe bazowe rozwiązanie dopuszczalne 907 30. Wielomiany i FFT 920 30.1. Reprezentacja wielomianów 922 30.2. DFT i FFT 929 30.3. Efektywne implementacje FFT 937 31. Algorytmy teorioliczbowe 948 31.1. Podstawowe pojęcia teorii liczb 950 31.2. Największy wspólny dzielnik 956 31.3. Arytmetyka modularna 961 31.4. Rozwiązywanie modularnych równań liniowych 969 31.5. Chińskie twierdzenie o resztach 973 31.6. Potęgi elementu 976 31.7. System kryptograficzny z kluczem publicznym RSA 981 *31.8. Sprawdzanie, czy dana liczba jest pierwsza 988 *31.9. Rozkład na czynniki pierwsze 999 32. Wyszukiwanie wzorca 1009 32.1. Algorytm naiwny" wyszukiwania wzorca 1012 32.2. Algorytm Rabina-Karpa 1014 32.3. Wyszukiwanie wzorca z wykorzystaniem automatów skończonych 1019 *32.4. Algorytm Knutha-Morrisa-Pratta 1026 33. Geometria obliczeniowa 1038 33.1. Własności odcinków 1039 33.2. Sprawdzanie, czy jakakolwiek para odcinków się przecina 1046 33.3. Znajdowanie otoczki wypukłej 1053 33.4. Znajdowanie pary najmniej odległych punktów 1064 34. NP-zupełność 1073 34.1. Czas wielomianowy 1079 34.2. Weryfikacja w czasie wielomianowym 1087 34.3. NP-zupełność i redukowalność 1092 34.4. Dowodzenie NP-zupełności 1103

34.5. Problemy NP-zupełne 1111 34.5.1. Problem kliki 1112 34.5.2. Problem pokrycia wierzchołkowego 1114 34.5.3. Problem cyklu Hamiltona 1116 34.5.4. Problem komiwojaŝera 1121 34.5.5. Problem sumy podzbioru 1122 35. Algorytmy aproksymacyjne 1131 35.1. Problem pokrycia wierzchołkowego 1133 35.2. Problem komiwojaŝera 1137 35.2.1. Problem komiwojaŝera z nierównością trójkąta 1138 35.2.2. Ogólny problem komiwojaŝera 1140 35.3. Problem pokrycia zbioru 1143 35.4. Randomizacja i programowanie liniowe 1148 35.5. Problem sumy podzbioru 1153 Część VIII Dodatek: Podstawy matematyczne Wprowadzenie 1168 A. Sumy 1170 A.1. Wzory i własności dotyczące sum 1170 A.2. Szacowanie sum 1174 B. Zbiory i nie tylko 1183 B.1. Zbiory 1183 B.2. Relacje 1188 B.3. Funkcje 1190 B.4. Grafy 1193 B.5. Drzewa 1197 B.5.1. Drzewa wolne 1198 B.5.2. Drzewa ukorzenione i uporządkowane 1200 B.5.3. Drzewa binarne i pozycyjne 1201 C. Zliczanie i prawdopodobieństwo 1206 C.1. Zliczanie 1206 C.2. Prawdopodobieństwo 1212 C.3. Dyskretne zmienne losowe 1219 C.4. Rozkłady: geometryczny i dwumianowy 1224 * C.5. Krańce rozkładu dwumianowego 1230 D. Macierze 1239 D.1. Macierze i operacje na macierzach 1239 D.2. Podstawowe własności macierzy 1244 Bibliografia 1252 Skorowidz 1269 oprac. BPK