lehrerbibliothek.deDatenschutzerklärung
Algorithm Design Foundations, Analysis and Internet Examples International Edition
Algorithm Design
Foundations, Analysis and Internet Examples


International Edition

Michael T. Goodrich, Roberto Tamassia

John Wiley & Sons
EAN: 9780471427568 (ISBN: 0-471-42756-X)
708 Seiten, paperback, 19 x 23cm, April, 2003

EUR 42,90
alle Angaben ohne Gewähr

Umschlagtext
Design principles, analysis techniques, and Internet examples for computer algorithms — all under one cover!



With Michael Goodrich and Roberto Tamassia's Algorithm Design: Foundations, Analysis, and Internet Examples, you can learn how to design algorithms, master mathematical and visual analysis techniques, and explore the latest Internet Applications.



Throughout, the text features numerous examples drawn from Internet applications that will help you develop a deeper understanding of topics such as hashing, sorting, and searching. All the algorithms are presented in pseudo-code. Java code examples are also provided in optional "implementation" sections found at the end of selected chapters.



Features



• Algorithmic design patterns provide a clear approach for designing algorithms.

• Visual proofs that are intuitive yet rigorous make mathematical arguments more understandable.

• Internet examples motivate old and new algorithms with Internet applications, such as hashing, packet routing, encryption, and more.

• Java code fragments in optional sections provide concrete implementation examples.

•Randomization replaces complex average-case analysis of sophisticated data structures with intuitive analysis of simple data structures and algorithms.

• A Web site (www.wiley.com/college/goodrich) offers support for students and instructors, including online transparencies, a special hint server, a problems database, Java source code, and more.



www.wiley.com/college/goodrich
Rezension
Die Kenntnis und vor allem das Verständnis von Algorithmen und den zugrundeliegenden Datenstrukturen ist für Informatiker und Programmierer unerläßlich. Da diese Thematik in vielen Büchern staubtrocken daherkommt, scheuen sich viele, sich näher mit den theoretischen Hintergründen und mathematischen Grundlagen auseinander zu setzen. Genau diesen Nachteil versucht das vorliegende Buch auszubügeln. Zusätzlich zur üblichen Pseudo-Code Notation und einigen Java-Code-Beispielen versuchen die Autoren die Algorithmen vor allem durch unzählige anschauliche Abbildungen verständlich zu machen. Da sie u.a. großen Wert auf die fundierte und ausführliche Analyse der vorgestellten Verfahren legen, läßt sich auch an diesem Buch die graue Theorie nicht ganz vermeiden. Viele Anwendungsbeispiele jedoch, vorwiegend aus dem Netzwerk- und Internetbereich, und Übungsaufgaben, die sich am Ende jedes Kapitels befinden, stellen die konkrete Praxistauglichkeit in den Vordergrund motivieren den Leser Kapitel für Kapitel aufs Neue.

Meiner Meinung nach das beste und umfangreichste Buch zu dieser Thematik und für jeden Informatiker, der Originalliteratur in englischer Sprache nicht scheut, ein Muss!

Florian Schimandl, lehrerbibliothek.de
Verlagsinfo
Alles über die Implementation von Datenstrukturen und Algorithmen: Die Autoren zeigen Ihnen, dass Sie mehr benötigen als nur theoretisch-algorithmische Kenntnisse, nämlich auch ingenieurtechnische Entwurfsprinzipien: abstrakte Datentypen, objektorientierte Entwurfsmuster und Strategien, die Robustheit und Benutzerfreundlichkeit sichern. Behandelt werden u.a. die schnelle Fourier-Transformation (FFT), Kryptologie, Parallelität und NP-Vollständigkeit.
Inhaltsverzeichnis
I Fundamental Tools

1 Algorithm Analysis

1.1 Methodologies for Analyzing Algorithms
1.2 Asymptotic Notation
1.3 A Quick Mathematical Review
1.4 Case Studies in Algorithm Analysis
1.5 Amortization
1.6 Experimentation
1.7 Exercises

2 Basic Data Structures

2.1 Stacks and Queues
2.2 Vectors, Lists, and Sequences
2.3 Trees
2.4 Priority Queues and Heaps
2.5 Dictionaries and Hash Tables
2.6 Java Example: Heap
2.7 Exercises

3 Search Trees and Skip Lists

3.1 Ordered Dictionaries and Binary Search Trees
3.2 AVL Trees
3.3 Bounded-Depth Search Trees
3.4 Splay Trees
3.5 Skip Lists
3.6 Java Example: AVL and Red-Black Trees
3.7 Exercises

4 Sorting, Sets, and Selection

4.1 Merge-Sort
4.2 The Set Abstract Data Type
4.3 Quick-Sort
4.4 A Lower Bound on Comparison-Based Sorting
4.5 Bucket-Sort and Radix-Sort
4.6 Comparison of Sorting Algorithms
4.7 Selection
4.8 Java Example: In-Place Quick-Sort
4.9 Exercises

5 Fundamental Techniques

5.1 The Greedy Method
5.2 Divide-and-Conquer
5.3 Dynamic Programming
5.4 Exercises

II Graph Algorithms

6 Graphs

6.1 The Graph Abstract Data Type
6.2 Data Structures for Graphs
6.3 Graph Traversal
6.4 Directed Graphs
6.5 Java Example: Depth-First Search
6.6 Exercises

7 Weighted Graphs

7.1 Single-Source Shortest Paths
7.2 All-Pairs Shortest Paths
7.3 Minimum Spanning Trees
7.4 Java Example: Dijkstra's Algorithm
7.5 Exercises

8 Network Flow and Matching

8.1 Flows and Cuts
8.2 Maximum Flow
8.3 Maximum Bipartite Matching
8.4 Minimum-Cost Flow
8.5 Java Example: Minimum-Cost Flow
8.6 Exercises

III Internet Algorithmics

9 Text Processing

9.1 Strings and Pattern Matching Algorithms
9.2 Tries
9.3 Text Compression
9.4 Text Similarity Testing
9.5 Exercises

10 Number Theory and Cryptography

10.1 Fundamental Algorithms Involving Numbers
10.2 Cryptographic Computations
10.3 Information Security Algorithms and Protocols
10.4 The Fast Fourier Transform
10.5 Java Example: FFT
10.6 Exercises

11 Network Algorithms

11.1 Complexity Measures and Models
11.2 Fundamental Distributed Algorithms
11.3 Broadcast and Unicast Routing
11.4 Multicast Routing
11.5 Exercises

IV Additional Topics

12 Computational Geometry

12.1 Range Trees
12.2 Priority Search Trees
12.3 Quadtrees and k-D Trees
12.4 The Plane Sweep Technique
12.5 Convex Hulls
12.6 Java Example: Convex Hull
12.7 Exercises

13 NP-Completeness

13.1 P and NP
13.2 NP-Completeness
13.3 Important NP-Complete Problems
13.4 Approximation Algorithms
13.5 Backtracking and Branch-and-Bound
13.6 Exercises

14 Algorithmic Frameworks

14.1 External-Memory Algorithms
14.2 Parallel Algorithms
14.3 Online Algorithms
14.4 Exercises

A Useful Mathematical Facts

Bibliography

Index