Łagodne wprowadzenie do analizy algorytmów
Marek Kubale
rok wydania: 2013 (wyd.X)
stron: 104
format: B5
oprawa: miękka
wydawnictwo: Politechnika Gdańska
SPIS TREŚCI:
PRZEDMOWA 5
1. WPROWADZENIE 7
1.1. Rys historyczny 7
1.2. Klasyfikacja problemów 9
1.3. Język PseudoPascal 15
1.4. Podstawy matematyczne 16
1.4.1. Logarytmy i zaokrąglenia całkowite 17
1.4.2. Sumy szeregów 17
1.5. Symbole oszacowań asymptotycznych 19
1.5.1. Symbol O(×) 20
1.5.2. Symbol o(×) 21
1.5.3. Symbol W(×) 21
1.5.4. Symbol w(×) 22
1.5.5. Symbol Q(×) 22
1.5.6. Symbol Θ~(×) 23
1.6. Równania rekurencyjne niejednorodne 24
1.6.1. Równania typu "dziel i rządź" 24
1.6.2. Równania typu "jeden krok w tył" 26
Zadania 30
2. PODSTAWY ANALIZY ALGORYTMÓW 36
2.1. Wstęp 36
2.2. Poprawność algorytmów 38
2.3. Złożoność czasowa algorytmów 41
2.3.1. Operacje podstawowe 41
2.3.2. Rozmiar danych 42
2.3.3. Pesymistyczna złożoność obliczeniowa 43
2.3.4. Oczekiwana złożoność obliczeniowa 43
2.4. Złożoność pamięciowa 46
2.5. Optymalność 50
2.6. Dokładność numeryczna algorytmów 52
2.6.1. Zadania źle uwarunkowane 52
2.6.2. Stabilność numeryczna 54
2.7. Prostota algorytmów 55
2.8. Wrażliwość algorytmów 57
2.9. Programowanie a złożoność obliczeniowa 59
2.9.1. Rząd złożoności obliczeniowej 59
2.9.2. Stała proporcjonalności złożoności obliczeniowej 62
2.9.3. Imperatyw złożoności obliczeniowej i odstępstwa 65
2.10. Przykład analizy: mnożenie macierzy 65
2.11. Algorytmy probabilistyczne 69
Zadania 72
3. PODSTAWOWE STRUKTURY DANYCH 80
3.1. Tablice 80
3.2. Listy 82
3.3. Zbiory 83
3.4. Grafy 84
3.4.1. Macierz sąsiedztwa wierzchołków 89
3.4.2. Listy sąsiedztwa wierzchołków 91
3.4.3. Pęki wyjściowe 92
Zadania 93
SŁOWNIK POLSKO-ANGIELSKI 98
LITERATURA 103