
Cała wiedza o algorytmach w jednym podręczniku!
- Jaki wpływ na różne algorytmy wywierają podobne decyzje projektowe?
- Jak rozwiązywać problemy dotyczące kodowania?
- Jak wykorzystać zaawansowane struktury danych do usprawnienia algorytmów?
Tworzenie niezawodnego oprogramowania wymaga stosowania sprawnych algorytmów. Jednak programiści rzadko poświęcają im uwagę, dopóki nie pojawią się kłopoty. Aby ich uniknąć, powinieneś wiedzieć, w jaki sposób poprawianie efektywności najważniejszych algorytmów przesądza o sukcesie Twoich aplikacji. W tej książce znajdziesz przetestowane i wypróbowane metody wykorzystywania oraz poprawiania skuteczności algorytmów -- do użycia w celu wdrożenia sprawnych rozwiązań programistycznych.
Książka "Algorytmy. Almanach" to cała wiedza o algorytmach, potrzebna ambitnemu programiście, zebrana w jeden kompletny podręcznik. Książka zawiera opisy algorytmów do rozwiązywania rozmaitych problemów, pomaga w wyborze i realizacji algorytmów odpowiednich do Twoich potrzeb, a także dostarcza wydajnych rozwiązań zakodowanych w kilku językach programowania, które łatwo można zaadaptować w konkretnych zadaniach. Dzięki temu podręcznikowi nauczysz się projektować struktury danych, a także dowiesz się, na czym polega przeszukiwanie drzewa binarnego oraz jak korzystać z informacji heurystycznych. Poznasz zaawansowane struktury danych, przydatne do usprawniania algorytmów, a jednocześnie niezbędne dla zagwarantowania pełnego sukcesu Twoich rozwiązań programistycznych.
- Algorytmy w ujęciu matematycznym
- Wzorce i dziedziny
- Algorytmy sortowania
- Wyszukiwanie sekwencyjne
- Przeszukiwanie drzewa binarnego
- Algorytmy grafowe
- Drzewa poszukiwań
- Korzystanie z informacji heurystycznych
- Algorytmy przepływu w sieciach
- Geometria obliczeniowa
- Zapytania przedziałowe
Cała wiedza o algorytmach, potrzebna każdemu programiście!
Przedmowa (7)Część I (15)
1. Algorytmy są ważne (17)
- Postaraj się zrozumieć problem (18)
- Jeśli to konieczne, eksperymentuj (19)
- Kwestia uboczna (23)
- Nauka płynąca z opowiedzianej historii (23)
- Literatura (25)
- Rozmiar konkretnego problemu (27)
- Tempo rośnięcia funkcji (29)
- Analiza przypadku najlepszego, średniego i najgorszego (33)
- Rodziny efektywności (37)
- Mieszanka działań (49)
- Operacje do pomiarów wzorcowych (50)
- Uwaga końcowa (52)
- Literatura (52)
- Wzorce - język komunikacji (53)
- Forma wzorca pseudokodu (55)
- Forma projektowa (57)
- Forma oceny doświadczalnej (59)
- Dziedziny a algorytmy (59)
- Obliczenia zmiennopozycyjne (60)
- Ręczne przydzielanie pamięci (64)
- Wybór języka programowania (66)
4. Algorytmy sortowania (71)
- Przegląd (71)
- Sortowanie przez wstawianie (77)
- Sortowanie medianowe (81)
- Sortowanie szybkie (91)
- Sortowanie przez wybieranie (98)
- Sortowanie przez kopcowanie (99)
- Sortowanie przez zliczanie (104)
- Sortowanie kubełkowe (106)
- Kryteria wyboru algorytmu sortowania (111)
- Literatura (115)
- Przegląd (117)
- Wyszukiwanie sekwencyjne (118)
- Wyszukiwanie z haszowaniem (128)
- Przeszukiwanie drzewa binarnego (140)
- Literatura (146)
- Przegląd (147)
- Przeszukiwania w głąb (153)
- Przeszukiwanie wszerz (160)
- Najkrótsza ścieżka z jednym źródłem (163)
- Najkrótsza ścieżka między wszystkimi parami (174)
- Algorytmy minimalnego drzewa rozpinającego (177)
- Literatura (180)
- Przegląd (181)
- Przeszukiwania wszerz (198)
- A*SEARCH (201)
- Porównanie (211)
- Algorytm minimaks (214)
- Algorytm AlfaBeta (222)
- Przegląd (231)
- Przepływ maksymalny (234)
- Dopasowanie obustronne (243)
- Uwagi na temat ścieżek powiększających (246)
- Przepływ o minimalnym koszcie (249)
- Przeładunek (250)
- Przydział zadań (252)
- Programowanie liniowe (253)
- Literatura (254)
- Przegląd (255)
- Skanowanie otoczki wypukłej (263)
- Zamiatanie prostą (272)
- Pytanie o najbliższych sąsiadów (283)
- Zapytania przedziałowe (294)
- Literatura (300)
10. Gdy wszystko inne zawodzi (303)
- Wariacje na temat (303)
- Algorytmy aproksymacyjne (304)
- Algorytmy offline (304)
- Algorytmy równoległe (305)
- Algorytmy losowe (305)
- Algorytmy, które mogą być złe, lecz z malejącym prawdopodobieństwem (312)
- Literatura (315)
- Przegląd (317)
- Zasada: znaj swoje dane (317)
- Zasada: podziel problem na mniejsze problemy (318)
- Zasada: wybierz właściwą strukturę (319)
- Zasada: dodaj pamięci, aby zwiększyć efektywność (319)
- Zasada: jeśli nie widać rozwiązania, skonstruuj przeszukanie (321)
- Zasada: jeśli nie widać rozwiązania, zredukuj problem do takiego,
który ma rozwiązanie (321)
- Zasada: pisanie algorytmów jest trudne, testowanie - trudniejsze (322)
Dodatek. Testy wzorcowe (327)
- Podstawy statystyczne (327)
- Sprzęt (328)
- Przykład (329)
- Raportowanie (335)
- Dokładność (337)