Darmowa dostawa od 150,00 zł
Struktury danych i algorytmy w języku Java. Przewodnik dla początkujących

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

  • Rok wydania: 2019 Oprawa: miękka Ilość stron: 168 Format: 168x237
Rozmiar
Najniższa cena z 30 dni przed obniżką: / szt.
Cena regularna: / szt.
Cena katalogowa:
Możesz kupić za pkt.
z
Produkt dostępny w bardzo dużej ilości
Skontaktuj się z obsługą sklepu, aby oszacować czas przygotowania tego produktu do wysyłki.
Produkt dostępny w bardzo dużej ilości
Wysyłka
14 dni na łatwy zwrot
Sprawdź, w którym sklepie obejrzysz i kupisz od ręki
Struktury danych i algorytmy w języku Java. Przewodnik dla początkujących
Struktury danych i algorytmy w języku Java. Przewodnik dla początkujących
Bezpieczne zakupy
Odroczone płatności. Kup teraz, zapłać później, jeżeli nie zwrócisz
Kup teraz, zapłać później - 4 kroki
Przy wyborze formy płatności, wybierz PayPo.PayPo - kup teraz, zapłać za 30 dni
PayPo opłaci twój rachunek w sklepie.
Na stronie PayPo sprawdź swoje dane i podaj pesel.
Po otrzymaniu zakupów decydujesz co ci pasuje, a co nie. Możesz zwrócić część albo całość zamówienia - wtedy zmniejszy się też kwota do zapłaty PayPo.
W ciągu 30 dni od zakupu płacisz PayPo za swoje zakupy bez żadnych dodatkowych kosztów. Jeśli chcesz, rozkładasz swoją płatność na raty.
Po zakupie otrzymasz pkt.

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

Algorytm i struktura danych: tak działa optymalny kod!

O autorze

James Cutajar jest programistą specjalizującym się w skalowalnych obliczeniach o wysokiej wydajności oraz w algorytmach rozproszonych. Pisze książki, bierze udział w projektach rozwoju otwartego oprogramowania, bloguje i zajmuje się marketingiem technologii.

Spis treści


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-Moore'a 120
    • Zasada niezgodności 120
    • Zasada dobrego sufiksu 123
    • Zastosowanie algorytmu Boyera-Moore'a 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

Marka
Autor
James Cutajar
ISBN
9788328353299
Potrzebujesz pomocy? Masz pytania?Zadaj pytanie a my odpowiemy niezwłocznie, najciekawsze pytania i odpowiedzi publikując dla innych.
Zapytaj o produkt
Jeżeli powyższy opis jest dla Ciebie niewystarczający, prześlij nam swoje pytanie odnośnie tego produktu. Postaramy się odpowiedzieć tak szybko jak tylko będzie to możliwe. Dane są przetwarzane zgodnie z polityką prywatności. Przesyłając je, akceptujesz jej postanowienia.
Napisz swoją opinię
Twoja ocena:
5/5
Dodaj własne zdjęcie produktu:
pixel