Używamy cookies, aby ułatwić korzystanie z Portalu. Możesz określić warunki przechowywania, dostępu do plików cookies w Twojej przeglądarce. Dowiedz się więcej.
strona główna Strona główna | Nowości | Promocje | Zapowiedzi Twoje konto | Zarejestruj | Schowek | Kontakt | Pomoc
mapa działów
Szukaj: szukanie zaawansowane
Koszyk
Książki \ Programowanie \ JAVA

Struktury danych i algorytmy w języku Java. Przewodnik dla początkujących Język: 1

978-83-283-5329-9

Cena Brutto: 39.90

Cena netto: 38.00

Ilość:
Wersja: Drukowana
Autor James Cutajar
Liczba_stron 168
Wydawnictwo Helion
Oprawa miękka
Data_Wydania 2019-05-14

Struktury danych i algorytmy w języku Java. Przewodnik dla początkujących


Aby aplikacje mogły spełniać oczekiwania dotyczące wydajności i szybkości działania, programista musi orientować się w typowych problemach z wykonywaniem kodu i wiedzieć, które techniki sprawdzą się w danej sytuacji. W tym celu powinien biegle posługiwać się algorytmami i strukturami danych. Wiedza ta umożliwia rozpoznawanie typowych zagrożeń i wybór najlepszych rozwiązań. Warto pamiętać, że w przypadku większości codziennych problemów z kodem istnieją już wypróbowane rozwiązania. Znajomość tych zagadnień jest niezwykle ważna dla każdego inżyniera oprogramowania.


To książka przeznaczona dla programistów, którzy chcą w praktyczny sposób posługiwać się popularnymi algorytmami i strukturami danych, zrozumieć ich działanie i skuteczniej poprawiać wydajność swojego kodu w Javie. Przedstawiono tu narzędzia przydatne w pracy z algorytmami i w tworzeniu efektywnych aplikacji. Opisano praktyczne aspekty złożoności algorytmów. Omówiono algorytmy sortowania oraz inne popularne wzorce programowania, a także takie struktury danych jak drzewa binarne, tablice z haszowaniem i grafy. Następnie zaprezentowano koncepcje bardziej zaawansowane, wśród nich paradygmaty projektowania algorytmów i teorię grafów.


W tej książce między innymi:

  • definiowanie algorytmu i złożoność algorytmiczna
  • struktury danych i ich implementacje
  • algorytmy sortowania i wyszukiwania wzorca w tekście
  • paradygmaty projektowania algorytmów
  • grafy i sposoby ich reprezentacji w programach komputerowych
  • grafy jako moduły do budowy złożonych algorytmów


O autorze 7

Wstęp 9

Rozdział 1. Algorytmy i ich złożoność 13

  • Tworzymy nasz pierwszy algorytm 14
    • Algorytm konwersji liczb dwójkowych na dziesiętne 14
  • Mierzenie złożoności algorytmów za pomocą notacji dużego O 16
    • Przykład na złożoność 16
    • Zrozumienie złożoności 18
    • Notacja złożoności 22
  • Identyfikacja algorytmów o różnej złożoności 26
    • Złożoność liniowa 26
    • Złożoność kwadratowa 27
    • Złożoność logarytmiczna 28
    • Złożoność wykładnicza 30
    • Złożoność stała 31
  • Podsumowanie 33

Rozdział 2. Algorytmy sortowania i podstawowe struktury danych 35

  • Wprowadzenie do sortowania bąbelkowego 35
    • Zrozumienie sortowania bąbelkowego 36
    • Udoskonalanie sortowania bąbelkowego 37
  • Zrozumienie sortowania szybkiego 40
    • Zrozumienie rekurencji 40
    • Podział w wyszukiwaniu szybkim 41
    • Jak to wszystko poskładać razem 44
  • Korzystanie z sortowania przez scalanie 45
    • Dzielenie problemu 46
    • Scalanie problemu 47
  • Rozpoczęcie pracy z podstawowymi strukturami danych 50
    • Wprowadzenie do struktur danych 50
    • Struktura list powiązanych 51
    • Operacje na listach powiązanych 53
    • Kolejki 56
    • Stosy 57
    • Modelowanie stosów i kolejek przy użyciu tablic 59
  • Podsumowanie 63

Rozdział 3. Tablice z haszowaniem i binarne drzewa poszukiwań 65

  • Wprowadzenie do tablic z haszowaniem 65
    • Zrozumienie tablic z haszowaniem 66
    • Rozwiązywanie kolizji przez łańcuchowanie 68
    • Rozwiązywanie kolizji przez adresowanie otwarte 71
    • Haszowanie uniwersalne 76
  • Rozpoczęcie pracy z binarnymi drzewami poszukiwań 78
    • Struktura drzewa binarnego 78
    • Operacje na binarnych drzewach poszukiwań 80
    • Przechodzenie przez binarne drzewo poszukiwań 83
    • Zrównoważone binarne drzewa poszukiwań 85
  • Podsumowanie 90

Rozdział 4. Paradygmaty projektowania algorytmów 91

  • Wprowadzenie do algorytmów zachłannych 92
    • Problem wyboru zajęć 92
    • Rozwiązanie problemu wyboru zajęć 94
    • Składniki algorytmu zachłannego 94
    • Kodowanie Huffmana 96
    • Ćwiczenie: Implementacja algorytmu zachłannego do obliczania ułamków egipskich 100
  • Wprowadzenie do algorytmów typu dziel i zwyciężaj 101
    • Podejście dziel i zwyciężaj 101
    • Metoda rekurencji uniwersalnej 102
    • Problem najbliższej pary punktów 104
    • Ćwiczenie: Rozwiązywanie problemu podtablicy o największej sumie 106
  • Zrozumienie programowania dynamicznego 108
    • Elementy problematyki programowania dynamicznego 108
    • Dyskretny problem plecakowy 109
    • Najdłuższy wspólny podciąg 112
    • Ćwiczenie: Problem wydawania reszty 114
  • Podsumowanie 115

Rozdział 5. Algorytmy wyszukiwania wzorca w tekście 117

  • Algorytm wyszukiwania naiwnego 117
    • Implementacja wyszukiwania naiwnego 118
    • Usprawnienie algorytmu wyszukiwania naiwnego 119
  • Pierwsze kroki z algorytmem wyszukiwania wzorca Boyera-Moorea 120
    • Zasada niezgodności 120
    • Zasada dobrego sufiksu 123
    • Zastosowanie algorytmu Boyera-Moorea 126
  • Prezentacja innych algorytmów wyszukiwania wzorca w tekście 127
    • Algorytm Rabina-Karpa 128
    • Algorytm Knutha-Morrisa-Pratta 129
    • Algorytm Aho-Corasick 130
  • Podsumowanie 130

Rozdział 6. Grafy, liczby pierwsze i klasy złożoności 131

  • Reprezentacja grafów 132
    • Listy sąsiedztwa 133
    • Macierz sąsiedztwa 135
  • Przechodzenie przez graf 137
    • Przeszukiwanie wszerz 138
    • Przeszukiwanie w głąb 140
    • Wykrywanie cykli 143
  • Obliczanie najkrótszych ścieżek 145
    • Najkrótsza ścieżka z pojedynczego źródła: algorytm Dijkstry 145
    • Najkrótsze ścieżki dla wszystkich par wierzchołków: algorytm Floyda-Warshalla 150
  • Liczby pierwsze w algorytmach 153
    • Sito Eratostenesa 154
    • Rozkład na czynniki pierwsze 154
  • Inne koncepcje związane z grafami 155
    • Minimalne drzewa rozpinające 155
    • Algorytm A* 156
    • Problem maksymalnego przepływu 156
  • Zrozumienie klas złożoności problemów 157
  • Podsumowanie 158

Skorowidz 159

powrót
 
Produkty Podobne
Struktury danych i algorytmy w języku Java. Przewodnik dla początkujących
Modularny JavaScript dla zaawansowanych
Core Java, Volume II--Advanced Features, 11th Edition
Java. Kompendium programisty. Wydanie X
Kotlin w akcji
Nowoczesna Java w działaniu. Wyrażenia lambda, strumienie, programowanie funkcyjne i reaktywne
Java. Przewodnik dla początkujących. Wydanie VII
Java. Efektywne programowanie. Wydanie III
Java w 24 godziny. Wydanie VIII
Programowanie w języku Java. Podejście interdyscyplinarne. Wydanie II
Więcej produktów