Algorytmy, struktury danych i techniki programowania. Wydanie II - Helion
ISBN: 83-86718-91-9
stron: 348, Format: B5, okładka: miękka
Data wydania: 1997-07-03
Księgarnia: Helion
Cena książki: 29,49 zł
"Algorytmy, struktury danych i techniki programowania" to nowoczesny podręcznik dla wszystkich osób, które w codziennej pracy programistycznej odczuwają potrzebę szybkiego odszukania pewnych informacji z dziedziny algorytmiki w celu zastosowania ich w swoich programach. Książka niniejsza została stworzona w myśl zasady:
Duża liczba zadań i programy znajdujące się na dyskietce powinny umożliwić szybkie zastosowanie w praktyce omawianego materiału.
- Techniki rekurencyjne: co to jest rekurencja i jak ją stosować w praktyce?
- Sortowanie danych: najpopularniejsze procedury sortujÄ…ce.
- Struktury danych: listy, kolejki, zbiory i drzewa w ujęciu praktycznym.
- Derekursywacja: jak zmienić program rekurencyjny (czasami bardzo czasochłonny) na jego wersję iteracyjną?
- Algorytmy przeszukiwania: przeszukiwanie liniowe, binarne i transformacja liniowa (ang. hashing).
- Przeszukiwanie tekstów: opis najbardziej znanych metod przeszukiwania tekstów (brute-force, K-M-P, Boyera i Moore"a, Rabina i Karpa).
- Zaawansowane techniki programowania: dziel-i-rządź, programowanie dynamiczne, algorytmy żarłoczne (ang. greedy).
- Algorytmika grafów: opis jednej z najciekawszych struktur danych występujących w informatyce.
- Sztuczna inteligencja: czy komputery mogą myśleć?
- Kodowanie i kompresja danych: opis najbardziej znanych popularnych metod kodowania i kompresji danych: systemu kryptograficznego z kluczem publicznym i metody Huffmana
- Zadania: zrób to sam!
Osoby które kupowały "Algorytmy, struktury danych i techniki programowania. Wydanie II", wybierały także:
- Algorytmy kryptograficzne. Przewodnik po algorytmach w blockchain, kryptografii kwantowej, protoko 79,00 zł, (39,50 zł -50%)
- Informatyk samouk. Przewodnik po strukturach danych i algorytmach dla pocz 58,98 zł, (29,49 zł -50%)
- My 89,00 zł, (44,50 zł -50%)
- Nauka algorytm 58,98 zł, (29,49 zł -50%)
- 40 algorytmów, które powinien znać każdy programista. Nauka implementacji algorytmów w Pythonie 77,00 zł, (38,50 zł -50%)
Spis treści
Algorytmy, struktury danych i techniki programowania. Wydanie II -- spis treści
Przedmowa
Rozdział 1. Zanim wystartujemy
- 1.1. Jak to wcześniej bywało, czyli wyjątki z historii maszyn algorytmicznych
- 1.2. Jak to się niedawno odbyło, czyli o tym kto "wymyślił" metodologię programowania
- 1.3. Proces koncepcji programów
- 1.4. Poziomy abstrakcji opisu i wybór języka
- 1.5. Poprawność algorytmów
Rozdział 2. Rekurencja
- 2.1. Definicja rekurencji
- 2.2. Ilustracja pojęcia rekurencji
- 2.3. Jak wykonujÄ… siÄ™ programy rekurencyjne?
- 2.4. Niebezpieczeństwa rekurencji
- 2.4.1. CiÄ…g Fibonacciego
- 2.4.2. Stack overflow!
- 2.5. Pułapek ciąg dalszy
- 2.5.1. Stąd do wieczności
- 2.5.2. Definicja poprawna, ale...
- 2.6. Typy programów rekurencyjnych
- 2.7. Myślenie rekurencyjne
- 2.7.1. Spirala
- 2.7.2. Kwadraty "parzyste"
- 2.8. Uwagi praktyczne na temat technik rekurencyjnych
- 2.9. Zadania
- 2.10. Rozwiązania i wskazówki do zadań
Rozdział 3. Analiza sprawności algorytmów
- 3.1. Dobre samopoczucie użytkownika programu
- 3.2. Przykład 1: Jeszcze raz funkcja silnia...
- 3.3. Przykład 2: Zerowanie fragmentu tablicy
- 3.4. Przykład 3: Wpadamy w pułapkę
- 3.5. Przykład 4: Różne typy złożoności obliczeniowej
- 3.6. Nowe zadanie: uprościć obliczenia!
- 3.7. Analiza programów rekurencyjnych
- 3.7.1. Terminologia
- 3.7.2. Ilustracja metody na przykładzie
- 3.7.3. Rozkład "logarytmiczny"
- 3.7.3.
- 3.7.4. Zamiana dziedziny równania rekurencyjnego
- 3.7.5. Funkcja Ackermanna, czyli coÅ› dla smakoszy
- 3.8. Zadania
- 3.9. Rozwiązania i wskazówki do zadań
Rozdział 4. Algorytmy sortowania
- 4.1. Sortowanie przez wstawianie, algorytm klasy O(N2)
- 4.2. Sortowanie bÄ…belkowe, algorytm klasy O(N2)
- 4.3. Quicksort, algorytm klasy O(N log2N)
- 4.4. Uwagi praktyczne
Rozdział 5. Struktury danych
- 5.1. Listy jednokierunkowe
- 5.1.1. Realizacja struktur danych listy jednokierunkowej
- 5.1.2. Tworzenie listy jednokierunkowej
- 5.1.3. Listy jednokierunkowe - teoria i rzeczywistość
- 5.2. Tablicowa implementacja list
- 5.2.1. Klasyczna reprezentacja tablicowa
- 5.2.2. Metoda tablic równoległych
- 5.2.3. Listy innych typów
- 5.3. Stos
- 5.3.1. Zasada działania stosu
- 5.4. Kolejki FIFO
- 5.5. Sterty i kolejki priorytetowe
- 5.6. Drzewa i ich reprezentacje
- 5.6.1. Drzewa binarne i wyrażenia arytmetyczne
- 5.7. Uniwersalna struktura słownikowa
- 5.8. Zbiory
- 5.9. Zadania
- 5.10. Rozwiązania zadań
Rozdział 6. Derekursywacja
- 6.1. Jak pracuje kompilator?
- 6.2. Odrobina formalizmu... nie zaszkodzi!
- 6.3. Kilka przykładów derekursywacji algorytmów
- 6.4. Derekursywacja z wykorzystaniem stosu
- 6.4.1. Eliminacja zmiennych lokalnych
- 6.5. Metoda funkcji przeciwnych
- 6.6. Klasyczne schematy derekursywacji
- 6.6.1. Schemat typu while
- 6.6.2. Schemat typu if... else
- 6.6.3. Schemat z podwójnym wywołaniem rekurencyjnym
- 6.7. Podsumowanie
Rozdział 7. Algorytmy przeszukiwania
- 7.1. Przeszukiwanie liniowe
- 7.2. Przeszukiwanie binarne
- 7.3. Transformacja kluczowa
- 7.3.1. W poszukiwaniu funkcji H
- 7.3.2. Najbardziej znane funkcje H
- 7.3.3. Obsługa konfliktów dostępu
- 7.3.4. Zastosowania transformacji kluczowej
- 7.3.5. Podsumowanie metod transformacji kluczowej
Rozdział 8. Przeszukiwanie tekstów
- 8.1. Algorytm typu brute-force
- 8.2. Nowe algorytmy poszukiwań
- 8.2.1. Algorytm K-M-P
- 8.2.2. Algorytm Boyera i Moore'a
- 8.2.3. Algorytm Rabina i Karpa
Rozdział 9. Zaawansowane techniki programowania
- 9.1. Programowanie typu "dziel-i-rządź"
- 9.1.1. Odszukiwanie minimum i maksimum w tablicy liczb
- 9.1.2. Mnożenie macierzy o rozmiarze N(N
- 9.1.3. Mnożenie liczb całkowitych
- 9.1.4. Inne znane algorytmy "dziel-i-rządź"
- 9.2. Algorytmy "żarłoczne", czyli przekąsić coś nadszedł już czas...
- 9.2.1. Problem plecakowy, czyli niełatwe jest życie turysty-piechura
- 9.3. Programowanie dynamiczne
- 9.4. Uwagi bibliograficzne
Rozdział 10. Elementy algorytmiki grafów
- 10.1. Definicje i pojęcia podstawowe
- 10.2. Sposoby reprezentacji grafów
- 10.3. Podstawowe operacje na grafach
- 10.4. Algorytm Roy-Warshalla
- 10.5. Algorytm Floyda
- 10.6. Przeszukiwanie grafów
- 10.6.1. Strategia "w głąb"
- 10.6.2. Strategia "wszerz"
- 10.7. Problem właściwego doboru
- 10.8. Podsumowanie
Rozdział 11. Algorytmy numeryczne
- 11.1. Poszukiwanie miejsc zerowych funkcji
- 11.2. Iteracyjne obliczanie wartości funkcji
- 11.3. Interpolacja funkcji metodÄ… Lagrange'a
- 11.4. Różniczkowanie funkcji
- 11.5. Całkowanie funkcji metodą Simpsona
- 11.6. Rozwiązywanie układów równań liniowych metodą Gaussa
- 11.7. Uwagi końcowe
Rozdział 12. W stronę sztucznej inteligencji
- 12.1. Reprezentacja problemów
- 12.2. Gry dwuosobowe i drzewa gier
- 12.3. Algorytm mini-max
Rozdział 13. Kodowanie i kompresja danych
- 13.1. Kodowanie danych i arytmetyka dużych liczb
- 13.2. Kompresja danych metodÄ… Huffmana
Rozdział 14. Zadania różne
- 14.1. Teksty zadań
- 14.2. RozwiÄ…zania
Dodatek A. Poznaj C++ w pięć minut
Literatura
Spis ilustracji
Spis tablic
Skorowidz