Algorithm Design : Foundations, Analysis, and Internet Examples

by ;
Edition: 2nd
Format: Paperback
Pub. Date: 2001-10-15
Publisher(s): Wiley
  • Free Shipping Icon

    This Item Qualifies for Free Shipping!*

    *Excludes marketplace orders.

List Price: $206.49

Buy New

Arriving Soon. Will ship when available.
$196.66

Buy Used

Arriving Soon. Will ship when available.
$147.50

Rent Textbook

Select for Price
There was a problem. Please try again later.

eTextbook

We're Sorry
Not Available

How Marketplace Works:

  • This item is offered by an independent seller and not shipped from our warehouse
  • Item details like edition and cover design may differ from our description; see seller's comments before ordering.
  • Sellers much confirm and ship within two business days; otherwise, the order will be cancelled and refunded.
  • Marketplace purchases cannot be returned to eCampus.com. Contact the seller directly for inquiries; if no response within two days, contact customer service.
  • Additional shipping costs apply to Marketplace purchases. Review shipping costs at checkout.

Summary

Michael Goodrich and Roberto Tamassia, authors of the successful, Data Structures and Algorithms in Java, 2/e, have written Algorithm Engineering, a text designed to provide a comprehensive introduction to the design, implementation and analysis of computer algorithms and data structures from a modern perspective. This book offers theoretical analysis techniques as well as algorithmic design patterns and experimental methods for the engineering of algorithms. Market: Computer Scientists; Programmers.

Author Biography

Michael T. Goodrich is a mathematician and computer scientist. He is a Chancellor's Professor and the chair of Department of Computer Science, of Donald Bren School of Information and Computer Sciences, a school of University of California, Irvine. Roberto Tamassia is the author of Algorithm Design: Foundations, Analysis, and Internet Examples, published by Wiley.

Table of Contents

I Fundamental Tools 1(284)
Algorithm Analysis
3(52)
Methodologies for Analyzing Algorithms
5(8)
Asymptotic Notation
13(8)
A Quick Mathematical Review
21(10)
Case Studies in Algorithm Analysis
31(3)
Amortization
34(8)
Experimentation
42(5)
Exercises
47(8)
Basic Data Structures
55(84)
Stacks and Queues
57(8)
Vectors, Lists, and Sequences
65(10)
Trees
75(19)
Priority Queues and Heaps
94(20)
Dictionaries and Hash Tables
114(14)
Java Example: Heap
128(3)
Exercises
131(8)
Search Trees and Skip Lists
139(78)
Ordered Dictionaries and Binary Search Trees
141(11)
AVL Trees
152(7)
Bounded-Depth Search Trees
159(26)
Splay Trees
185(10)
Skip Lists
195(7)
Java Example: AVL and Red-Black Trees
202(10)
Exercises
212(5)
Sorting, Sets, and Selection
217(40)
Merge-Sort
219(6)
The Set Abstract Data Type
225(10)
Quick-Sort
235(4)
A Lower Bound on Comparison-Based Sorting
239(2)
Bucket-Sort and Radix-Sort
241(3)
Comparison of Sorting Algorithms
244(1)
Selection
245(3)
Java Example: In-Place Quick-Sort
248(3)
Exercises
251(6)
Fundamental Techniques
257(28)
The Greedy Method
259(4)
Divide-and-Conquer
263(11)
Dynamic Programming
274(8)
Exercises
282(3)
II Graph Algorithms 285(130)
Graphs
287(52)
The Graph Abstract Data Type
289(7)
Data Structures for Graphs
296(7)
Graph Traversal
303(13)
Directed Graphs
316(13)
Java Example: Depth-First Search
329(6)
Exercises
335(4)
Weighted Graphs
339(42)
Single-Source Shortest Paths
341(13)
All-Pairs Shortest Paths
354(6)
Minimum Spanning Trees
360(13)
Java Example: Dijkstra's Algorithm
373(3)
Exercises
376(5)
Network Flow and Matching
381(34)
Flows and Cuts
383(4)
Maximum Flow
387(9)
Maximum Bipartite Matching
396(2)
Minimum-Cost Flow
398(7)
Java Example: Minimum-Cost Flow
405(7)
Exercises
412(3)
III Internet Algorithmics 415(130)
Text Processing
417(34)
Strings and Pattern Matching Algorithms
419(10)
Tries
429(11)
Text Compression
440(3)
Text Similarity Testing
443(4)
Exercises
447(4)
Number Theory and Cryptography
451(60)
Fundamental Algorithms Involving Numbers
453(18)
Cryptographic Computations
471(10)
Information Security Algorithms and Protocols
481(7)
The Fast Fourier Transform
488(12)
Java Example: FFT
500(8)
Exercises
508(3)
Network Algorithms
511(34)
Complexity Measures and Models
513(4)
Fundamental Distributed Algorithms
517(13)
Broadcast and Unicast Routing
530(5)
Multicast Routing
535(6)
Exercises
541(4)
IV Additional Topics 545(140)
Computational Geometry
547(44)
Range Trees
549(7)
Priority Search Trees
556(5)
Quadtrees and k-D Trees
561(4)
The Plane Sweep Technique
565(7)
Convex Hulls
572(11)
Java Example: Convex Hull
583(4)
Exercises
587(4)
NP - Completeness
591(52)
P and NP
593(6)
NP - Completeness
599(4)
Important NP - Complete Problems
603(15)
Approximation Algorithms
618(9)
Backtracking and Branch-and-Bound
627(11)
Exercises
638(5)
Algorithmic Frameworks
643(42)
External-Memory Algorithms
645(12)
Parallel Algorithms
657(10)
Online Algorithms
667(13)
Exercises
680(5)
A Useful Mathematical Facts 685(4)
Bibliography 689(9)
Index 698

An electronic version of this book is available through VitalSource.

This book is viewable on PC, Mac, iPhone, iPad, iPod Touch, and most smartphones.

By purchasing, you will be able to view this book online, as well as download it, for the chosen number of days.

Digital License

You are licensing a digital product for a set duration. Durations are set forth in the product description, with "Lifetime" typically meaning five (5) years of online access and permanent download to a supported device. All licenses are non-transferable.

More details can be found here.

A downloadable version of this book is available through the eCampus Reader or compatible Adobe readers.

Applications are available on iOS, Android, PC, Mac, and Windows Mobile platforms.

Please view the compatibility matrix prior to purchase.