Wprowadzenie do algorytmów i struktur danych

Większy obrazek (wyd. 2) Większy obrazek (wyd. 1) Autor: Kazimierz Jakubczyk
Wydawnictwo 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ści

Wstęp
Rozdział 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)


Powrót do początku