Algorytmy_Ilustrowany_przewodnik_algoip.pdf

(1419 KB) Pobierz
Tytuł oryginału: Grokking Algorithms: An illustrated guide
for programmers and other curious people
Tłumaczenie: Łukasz Piwko
ISBN: 978-83-283-3445-8
Original edition copyright © 2016 by Manning Publications Co.
All rights reserved.
Polish edition copyright © 2017 by HELION SA
All rights reserved.
All rights reserved. No part of this book may be reproduced or transmitted in any
form or by any means, electronic or mechanical, including photocopying, recording
or by any information storage retrieval system, without permission from the Publisher.
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu
niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą
kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym
lub innym powoduje naruszenie praw autorskich niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź
towarowymi ich właścicieli.
Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte
w tej książce informacje były kompletne i rzetelne. Nie biorą jednak żadnej
odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne
naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION
nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe
z wykorzystania informacji zawartych w książce.
Wydawnictwo HELION
ul. Kościuszki 1c, 44-100 GLIWICE
tel. 32 231 22 19, 32 230 98 63
e-mail:
helion@helion.pl
WWW:
http://helion.pl
(księgarnia internetowa, katalog książek)
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/algoip
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Printed in Poland.
Kup książkę
Poleć książkę
Oceń książkę
Księgarnia internetowa
Lubię to! » Nasza społeczność
Spis treści
Przedmowa
Podziękowania
O książce
xiii
xiv
xv
1
1
2
2
3
5
10
10
11
13
15
15
17
19
21
22
24
25
26
vii
Kup książkę
Poleć książkę
1.
Wprowadzenie do algorytmów
Wprowadzenie
Czego nauczysz się o wydajności
Czego nauczysz się o rozwiązywaniu problemów
Wyszukiwanie binarne
Lepszy sposób wyszukiwania
Czas wykonywania
Notacja dużego O
Czas wykonywania algorytmów
rośnie w różnym tempie
Wizualizacja różnych czasów wykonywania
Notacja dużego O określa
czas działania w najgorszym przypadku
Kilka typowych czasów wykonywania
Problem komiwojażera
Powtórzenie
2.
Sortowanie przez wybieranie
Jak działa pamięć
Tablice i listy powiązane
Listy powiązane
Tablice
viii
Spis treści
Terminologia
Wstawianie elementów w środku listy
Usuwanie elementów
27
29
30
32
36
37
38
40
42
43
45
50
51
52
60
66
67
68
72
73
76
79
80
81
83
86
86
Sortowanie przez wybieranie
Powtórzenie
3.
Rekurencja
Rekurencja
Przypadki podstawowy i rekurencyjny
Stos
Stos wywołań
Stos wywołań z rekurencją
Powtórzenie
4.
Szybkie sortowanie
„Dziel i rządź”
Sortowanie szybkie
Jeszcze raz o notacji dużego O
Sortowanie przez scalanie a sortowanie szybkie
Przypadki średni i najgorszy
Powtórzenie
5.
Tablice skrótów
Funkcje obliczania skrótów
Zastosowania tablic skrótów
Przeszukiwanie tablic skrótów
Zapobieganie powstawaniu duplikatów elementów
Tablice skrótów jako pamięć podręczna
Powtórzenie wiadomości
Kolizje
Kup książkę
Poleć książkę
Spis treści
ix
Wydajność
Współczynnik zapełnienia
Dobra funkcja obliczania skrótów
88
90
92
94
95
96
98
99
102
103
105
107
111
114
115
116
120
122
128
131
140
141
142
144
146
147
152
153
Powtórzenie
6.
Przeszukiwanie wszerz
Wprowadzenie do grafów
Czym jest graf
Wyszukiwanie wszerz
Szukanie najkrótszej drogi
Kolejki
Implementacja grafu
Implementacja algorytmu
Czas wykonywania
Powtórzenie
7.
Algorytm Dijkstry
Posługiwanie się algorytmem Dijkstry
Terminologia
Szukanie funduszy na fortepian
Krawędzie o wadze ujemnej
Implementacja
Powtórzenie
8.
Algorytmy zachłanne
Plan zajęć w sali lekcyjnej
Problem plecaka
Problem pokrycia zbioru
Algorytmy aproksymacyjne
Problemy NP-zupełne
Problem komiwojażera krok po kroku
Kup książkę
Poleć książkę
Zgłoś jeśli naruszono regulamin