|
Autor: Kazimierz JakubczykWydawnictwo Politechniki Radomskiej Data wydania: czerwiec 2005, wrzesień 2007 ISBN: 83-7351-139-3 (wyd. 1), 978-83-7351-223-8 (wyd. 2) Format: B5, oprawa miękka, stron: 302 Przykłady na WWW: • wersje źródłowe (ZIP, 47 KB) • wersje źródłowe i wykonawcze (ZIP, 3 462 KB) • przykładowy rozdział książki (PDF, 334 KB) Erraty: • errata do wyd. 1 (dokument w formacie PDF) • errata do wyd. 1 (dokument w formacie Word) • errata do wyd. 2 (dokument w formacie PDF) • errata do wyd. 2 (dokument w formacie Word) Tematyką książki są podstawowe zagadnienia algorytmiczne uważane obecnie za klasyczne. Zestaw omawianych zagadnień może wydawać się dość wybiórczy, jednak jest na tyle reprezentatywny, że ich opanowanie wystarczy do tworzenia większości efektywnych programów i pozwoli na uniknięcie "odkrywania tego, co już zostało odkryte". Jako narzędzie opisu algorytmów i struktur danych użyty został pseudojęzyk zbliżony do Pascala, stanowiący mieszankę konstrukcji pascalowych i wyrażeń w języku naturalnym. Przyjęte podejście ma tę zaletę, że zapisy algorytmów w pseudojęzyku są przejrzyste i zrozumiałe, a ponadto dają się łatwo przekształcić do poprawnych programów w języku Pascal, które można skompilować i wykonać. Wiele algorytmów zostało zaprezentowanych w postaci pełnych programów opracowanych w środowisku Delphi firmy Borland, ponieważ jest ono oparte na Pascalu i zawiera szereg mechanizmów obiektowych ułatwiających realizację wielu rozważanych struktur danych. Algorytmy te można łatwo zaimplementować w innym języku programowania, np. w C, C++ lub Java. Książka jest adresowana do tych Czytelników, dla których algorytmika ma pełnić użytkową rolę w wykonywaniu zawodu. W szczególności może posłużyć jako podręcznik studentom informatyki, a także studentom kierunków nieinformatycznych, którzy są przygotowywani do rozwiązywania problemów za pomocą komputera. Może też być pomocna dla uczniów liceów, którzy w ramach zajęć w szkole lub pozalekcyjnych w domu pogłębiają swoją wiedzę informatyczną, a nawet dla programistów, którym zdarza się marnować czas na pisaniu programu opartego na złym algorytmie.
Spis treściWstępRozdział 1. Algorytmy, ich analiza i metody tworzenia 1.1. Rozsądny czas wykonania algorytmu 1.2. Dokładność algorytmów numerycznych 1.3. Reprezentacje algorytmów 1.4. Pomiar czasu wykonania programu 1.5. Złożoność obliczeniowa algorytmów 1.6. Przeszukiwanie sekwencyjne i binarne 1.7. Notacja asymptotyczna 1.8. Rekurencja a iteracja 1.9. Metody tworzenia algorytmów Ćwiczenia Rozdział 2. Sortowanie 2.1. Sortowanie przez selekcję 2.2. Sortowanie przez wstawianie 2.3. Sortowanie przez wstawianie binarne 2.4. Sortowanie szybkie 2.5. Sortowanie kopcowe 2.6. Porównanie algorytmów sortowania wewnętrznego 2.7. Znajdowanie mediany 2.8. Algorytmy sortowania zewnętrznego Ćwiczenia Rozdział 3. Listowe struktury danych 3.1. Listy, stosy, kolejki 3.2. Implementacja tablicowa listy 3.3. Implementacja dowiązaniowa listy 3.4. Implementacje w Delphi 3.5. Kolejki priorytetowe 3.6. Zbiory 3.7. Słowniki 3.8. Mieszanie (haszowanie) Ćwiczenia Rozdział 4. Algorytmy grafowe 4.1. Podstawowe pojęcia 4.2. Sposoby reprezentowania grafów 4.3. Przeszukiwanie grafu w głąb 4.4. Przeszukiwanie grafu wszerz 4.5. Drzewo rozpinające grafu 4.6. Spójne składowe grafu nieskierowanego 4.7. Znajdowanie najkrótszych ścieżek w grafie 4.8. Implementacja algorytmu Dijkstry w Delphi Ćwiczenia Rozdział 5. Algorytmy rekurencyjne 5.1. Drzewko 5.2. Krzywe Sierpińskiego 5.3. Problem plecakowy 5.4. Problem ośmiu hetmanów 5.5. Wypłacalność kwoty 5.6. Interpretator wyrażeń arytmetycznych Ćwiczenia Dodatek. Programowanie wizualne w Delphi D.1. Elementy i konfiguracja środowiska D.2. Klasy, obiekty, komponenty D.3. Paleta komponentów i jej wykorzystanie D.4. Inspektor obiektów, właściwości i zdarzenia D.5. Pliki tworzone przez środowisko D.6. Kod źródłowy aplikacji i jego edycja D.7. Liczby rzymskie D.8. Kreślenie hipocykloidy Literatura Skorowidz Summary (streszczenie w języku angielskim)
|