Zrozum_struktury_danych_Algorytmy_i_praca_na_danych_w_Javie_zrojav.pdf

(571 KB) Pobierz
Tytuł oryginału: Think Data Structures: Algorithms and Information Retrieval in Java
Tłumaczenie: Łukasz Suma
ISBN: 978-83-283-4092-3
© 2018 Helion S.A.
Authorized Polish translation of the English edition of Think Data Structures
ISBN 9781491954386 © 2017 Allen B. Downey
This translation is published and sold by permission of O’Reilly Media, Inc.,
which owns or controls all rights to publish and sell the same.
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)
Pliki z przykładami omawianymi w książce można znaleźć pod adresem:
ftp://ftp.helion.pl/przyklady/zrojav.zip
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/
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
Wstęp ..........................................................................................................7
1. Interfejsy ............................................................................................13
Dlaczego są dwa rodzaje list?
Interfejsy w języku Java
Interfejs List
Ćwiczenie 1.
14
15
16
17
2. Analiza algorytmów ..........................................................................21
Sortowanie przez wybieranie
Notacja dużego O
Ćwiczenie 2.
23
25
26
3. Klasa ArrayList ...................................................................................31
Klasyfikacja metod klasy MyArrayList
Klasyfikacja metody add
Wielkość problemu obliczeniowego
Powiązane struktury danych
Ćwiczenie 3.
Uwaga na temat odśmiecania pamięci
31
33
36
37
39
42
4. Klasa LinkedList .................................................................................45
Klasyfikacja metod klasy MyLinkedList
Porównanie klas MyArrayList i MyLinkedList
Profilowanie
Interpretacja wyników
Ćwiczenie 4.
45
48
49
52
53
5. Lista dwukierunkowa ........................................................................55
Wyniki profilowania wydajnościowego
Profilowanie metod klasy LinkedList
Dodawanie na końcu listy będącej obiektem klasy LinkedList
55
57
59
Spis treści
Kup książkę
3
Poleć książkę
Lista dwukierunkowa
Wybór struktury
61
62
6. Przechodzenie przez drzewo ...........................................................65
Mechanizmy wyszukiwania
Parsowanie kodu HTML
Używanie biblioteki jsoup
Iterowanie po drzewie DOM
Przeszukiwanie w głąb
Stosy w języku Java
Iteracyjna implementacja DFS
65
67
69
71
72
73
75
7. Dochodzenie do filozofii ...................................................................77
Pierwsze kroki
Interfejsy Iterable i Iterator
Klasa WikiFetcher
Ćwiczenie 5.
77
78
80
82
8. Indekser ..............................................................................................85
Wybór struktury danych
Klasa TermCounter
Ćwiczenie 6.
85
87
90
9. Interfejs Map ......................................................................................95
Implementacja klasy MyLinearMap
Ćwiczenie 7.
Analiza klasy MyLinearMap
95
96
98
10. Mieszanie .........................................................................................101
Mieszanie
Jak działa mieszanie?
Mieszanie i zmiany
Ćwiczenie 8.
101
104
106
107
11. Klasa HashMap ................................................................................109
Ćwiczenie 9.
Analiza klasy MyHashMap
Kompromisy
Profilowanie klasy MyHashMap
Poprawianie klasy MyHashMap
Diagramy klas UML
109
111
113
114
114
117
4
Spis treści
Poleć książkę
Kup książkę
12. Klasa TreeMap .................................................................................119
Co jest nie tak z mieszaniem?
Binarne drzewo poszukiwań
Ćwiczenie 10.
Implementacja klasy TreeMap
119
120
122
124
13. Binarne drzewo poszukiwań ..........................................................129
Prosta klasa MyTreeMap
Wyszukiwanie wartości
Implementacja metody put
Przechodzenie poprzeczne
Metody logarytmiczne
Drzewa samorównoważące się
Jeszcze jedno ćwiczenie
129
130
132
133
135
137
138
14. Trwałość ...........................................................................................139
Redis
Serwery i klienty Redisa
Tworzenie indeksu przy użyciu Redisa
Typy danych Redisa
Ćwiczenie 11.
Więcej sugestii, z których możesz skorzystać
Kilka wskazówek dotyczących projektu
140
141
142
144
146
148
149
15. Pełzanie po Wikipedii .....................................................................151
Indekser wykorzystujący Redisa
Analiza operacji przeglądania
Analiza operacji indeksowania
Przechodzenie grafu
Ćwiczenie 12.
151
154
155
156
157
16. Wyszukiwanie logiczne ..................................................................161
Implementacja pełzacza
Pozyskiwanie informacji
Wyszukiwanie logiczne
Ćwiczenie 13.
Interfejsy Comparable i Comparator
Rozszerzenia
161
163
164
165
168
170
Spis treści
Kup książkę
5
Poleć książkę
Zgłoś jeśli naruszono regulamin