Struktury_danych_i_algorytmy_w_jezyku_Java_Przewodnik_dla_poczatkujacych_sdalgj.pdf

(2107 KB) Pobierz
Tytuł oryginału: Beginning Java Data Structures and Algorithms
Tłumaczenie: Krzysztof Bąbol
ISBN: 978-83-283-5329-9
Copyright © Packt Publishing 2018. First published in the English language under the title ‘Beginning Java
Data Structures and Algorithms – (9781789537178)’.
Polish edition copyright © 2019 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 Helion SA 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 Helion SA nie ponoszą również
żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce.
Helion SA
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)
Pliki z przykładami omawianymi w książce można znaleźć pod adresem:
ftp://ftp.helion.pl/przyklady/sdalgj.zip
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/sdalgj
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
O autorze
Wst p
Rozdzia 1. Algorytmy i ich z o ono
Tworzymy nasz pierwszy algorytm
Algorytm konwersji liczb dwójkowych na dziesi tne
Mierzenie z o ono ci algorytmów za pomoc notacji du ego O
Przyk ad na z o ono
Zrozumienie z o ono ci
Notacja z o ono ci
Identyfikacja algorytmów o ró nej z o ono ci
Z o ono liniowa
Z o ono kwadratowa
Z o ono logarytmiczna
Z o ono wyk adnicza
Z o ono sta a
Podsumowanie
7
9
13
14
14
16
16
19
22
26
27
28
29
30
32
34
Rozdzia 2. Algorytmy sortowania i podstawowe struktury danych
Wprowadzenie do sortowania b belkowego
Zrozumienie sortowania b belkowego
Udoskonalanie sortowania b belkowego
Zrozumienie sortowania szybkiego
Zrozumienie rekurencji
Podzia w wyszukiwaniu szybkim
Jak to wszystko posk ada razem
Korzystanie z sortowania przez scalanie
Dzielenie problemu
Scalanie problemu
35
35
36
37
40
40
42
44
46
47
48
Kup książkę
Poleć książkę
Spis tre ci
Rozpocz cie pracy z podstawowymi strukturami danych
Wprowadzenie do struktur danych
Struktura list powi zanych
Operacje na listach powi zanych
Kolejki
Stosy
Modelowanie stosów i kolejek przy u yciu tablic
Podsumowanie
50
51
51
53
57
58
60
64
Rozdzia 3. Tablice z haszowaniem i binarne drzewa poszukiwa
Wprowadzenie do tablic z haszowaniem
Zrozumienie tablic z haszowaniem
Rozwi zywanie kolizji przez a cuchowanie
Rozwi zywanie kolizji przez adresowanie otwarte
Haszowanie uniwersalne
Rozpocz cie pracy z binarnymi drzewami poszukiwa
Struktura drzewa binarnego
Operacje na binarnych drzewach poszukiwa
Przechodzenie przez binarne drzewo poszukiwa
Zrównowa one binarne drzewa poszukiwa
Podsumowanie
65
65
66
68
71
76
78
78
80
84
86
91
Rozdzia 4. Paradygmaty projektowania algorytmów
Wprowadzenie do algorytmów zach annych
Problem wyboru zaj
Rozwi zanie problemu wyboru zaj
Sk adniki algorytmu zach annego
Kodowanie Huffmana
wiczenie: Implementacja algorytmu zach annego
do obliczania u amków egipskich
Wprowadzenie do algorytmów typu „dziel i zwyci aj”
Podej cie „dziel i zwyci aj”
Metoda rekurencji uniwersalnej
Problem najbli szej pary punktów
wiczenie: Rozwi zywanie problemu podtablicy o najwi kszej sumie
Zrozumienie programowania dynamicznego
Elementy problematyki programowania dynamicznego
Dyskretny problem plecakowy
Najd u szy wspólny podci g
wiczenie: Problem wydawania reszty
Podsumowanie
93
94
94
96
96
99
102
103
103
104
106
109
110
110
111
114
116
117
Rozdzia 5. Algorytmy wyszukiwania wzorca w tek cie
Algorytm wyszukiwania naiwnego
Implementacja wyszukiwania naiwnego
Usprawnienie algorytmu wyszukiwania naiwnego
119
119
120
121
4
Kup książkę
Poleć książkę
Spis tre ci
Pierwsze kroki z algorytmem wyszukiwania wzorca Boyera-Moore’a
Zasada niezgodno ci
Zasada dobrego sufiksu
Zastosowanie algorytmu Boyera-Moore’a
Prezentacja innych algorytmów wyszukiwania wzorca w tek cie
Algorytm Rabina-Karpa
Algorytm Knutha-Morrisa-Pratta
Algorytm Aho-Corasick
Podsumowanie
122
123
125
129
130
130
132
132
133
Rozdzia 6. Grafy, liczby pierwsze i klasy z o ono ci
Reprezentacja grafów
Listy s siedztwa
Macierz s siedztwa
Przechodzenie przez graf
Przeszukiwanie wszerz
Przeszukiwanie w g b
Wykrywanie cykli
Obliczanie najkrótszych cie ek
Najkrótsza cie ka z pojedynczego ród a: algorytm Dijkstry
Najkrótsze cie ki dla wszystkich par wierzcho ków: algorytm Floyda-Warshalla
Liczby pierwsze w algorytmach
Sito Eratostenesa
Rozk ad na czynniki pierwsze
Inne koncepcje zwi zane z grafami
Minimalne drzewa rozpinaj ce
Algorytm A*
Problem maksymalnego przep ywu
Zrozumienie klas z o ono ci problemów
Podsumowanie
135
136
137
139
142
142
144
147
149
150
154
158
158
158
159
159
160
161
161
162
Skorowidz
163
5
Kup książkę
Poleć książkę
Zgłoś jeśli naruszono regulamin