Algorithm design
Subtitle: foundations, analysis, and Internet examples
By: Michael T. Goodrich, Roberto Tamassia
Contributors: Tamassia, Roberto, 1960-
Publisher: Wiley-India
Published: 2011
Place of publication: New Delhi
Language: eng
Number of pages: 708
ISBN-13: 9788126509867
Subjects: Computer algorithms; Data structures (Computer science)
Notes: Includes bibliographical references and index.
Table of contents: label: I
title: Fundamental Tools
pagenum: 1; label: 1
title: Algorithm Analysis
pagenum: 3; label: 1.1
title: Methodologies for Analyzing Algorithms
pagenum: 5; label: 1.2
title: Asymptotic Notation
pagenum: 13; label: 1.3
title: A Quick Mathematical Review
pagenum: 21; label: 1.4
title: Case Studies in Algorithm Analysis
pagenum: 31; label: 1.5
title: Amortization
pagenum: 34; label: 1.6
title: Experimentation
pagenum: 42; label: 1.7
title: Exercises
pagenum: 47; label: 2
title: Basic Data Structures
pagenum: 55; label: 2.1
title: Stacks and Queues
pagenum: 57; label: 2.2
title: Vectors, Lists, and Sequences
pagenum: 65; label: 2.3
title: Trees
pagenum: 75; label: 2.4
title: Priority Queues and Heaps
pagenum: 94; label: 2.5
title: Dictionaries and Hash Tables
pagenum: 114; label: 2.6
title: Java Example: Heap
pagenum: 128; label: 2.7
title: Exercises
pagenum: 131; label: 3
title: Search Trees and Skip Lists
pagenum: 139; label: 3.1
title: Ordered Dictionaries and Binary Search Trees
pagenum: 141; label: 3.2
title: AVL Trees
pagenum: 152; label: 3.3
title: Bounded-Depth Search Trees
pagenum: 159; label: 3.4
title: Splay Trees
pagenum: 185; label: 3.5
title: Skip Lists
pagenum: 195; label: 3.6
title: Java Example: AVL and Red-Black Trees
pagenum: 202; label: 3.7
title: Exercises
pagenum: 212; label: 4
title: Sorting, Sets, and Selection
pagenum: 217; label: 4.1
title: Merge-Sort
pagenum: 219; label: 4.2
title: The Set Abstract Data Type
pagenum: 225; label: 4.3
title: Quick-Sort
pagenum: 235; label: 4.4
title: A Lower Bound on Comparison-Based Sorting
pagenum: 239; label: 4.5
title: Bucket-Sort and Radix-Sort
pagenum: 241; label: 4.6
title: Comparison of Sorting Algorithms
pagenum: 244; label: 4.7
title: Selection
pagenum: 245; label: 4.8
title: Java Example: In-Place Quick-Sort
pagenum: 248; label: 4.9
title: Exercises
pagenum: 251; label: 5
title: Fundamental Techniques
pagenum: 257; label: 5.1
title: The Greedy Method
pagenum: 259; label: 5.2
title: Divide-and-Conquer
pagenum: 263; label: 5.3
title: Dynamic Programming
pagenum: 274; label: 5.4
title: Exercises
pagenum: 282; label: II
title: Graph Algorithms
pagenum: 285; label: 6
title: Graphs
pagenum: 287; label: 6.1
title: The Graph Abstract Data Type
pagenum: 289; label: 6.2
title: Data Structures for Graphs
pagenum: 296; label: 6.3
title: Graph Traversal
pagenum: 303; label: 6.4
title: Directed Graphs
pagenum: 316; label: 6.5
title: Java Example: Depth-First Search
pagenum: 329; label: 6.6
title: Exercises
pagenum: 335; label: 7
title: Weighted Graphs
pagenum: 339; label: 7.1
title: Single-Source Shortest Paths
pagenum: 341; label: 7.2
title: All-Pairs Shortest Paths
pagenum: 354; label: 7.3
title: Minimum Spanning Trees
pagenum: 360; label: 7.4
title: Java Example: Dijkstra's Algorithm
pagenum: 373; label: 7.5
title: Exercises
pagenum: 376; label: 8
title: Network Flow and Matching
pagenum: 381; label: 8.1
title: Flows and Cuts
pagenum: 383; label: 8.2
title: Maximum Flow
pagenum: 387; label: 8.3
title: Maximum Bipartite Matching
pagenum: 396; label: 8.4
title: Minimum-Cost Flow
pagenum: 398; label: 8.5
title: Java Example: Minimum-Cost Flow
pagenum: 405; label: 8.6
title: Exercises
pagenum: 412; label: III
title: Internet Algorithmics
pagenum: 415; label: 9
title: Text Processing
pagenum: 417; label: 9.1
title: Strings and Pattern Matching Algorithms
pagenum: 419; label: 9.2
title: Tries
pagenum: 429; label: 9.3
title: Text Compression
pagenum: 440; label: 9.4
title: Text Similarity Testing
pagenum: 443; label: 9.5
title: Exercises
pagenum: 447; label: 10
title: Number Theory and Cryptography
pagenum: 451; label: 10.1
title: Fundamental Algorithms Involving Numbers
pagenum: 453; label: 10.2
title: Cryptographic Computations
pagenum: 471; label: 10.3
title: Information Security Algorithms and Protocols
pagenum: 481; label: 10.4
title: The Fast Fourier Transform
pagenum: 488; label: 10.5
title: Java Example: FFT
pagenum: 500; label: 10.6
title: Exercises
pagenum: 508; label: 11
title: Network Algorithms
pagenum: 511; label: 11.1
title: Complexity Measures and Models
pagenum: 513; label: 11.2
title: Fundamental Distributed Algorithms
pagenum: 517; label: 11.3
title: Broadcast and Unicast Routing
pagenum: 530; label: 11.4
title: Multicast Routing
pagenum: 535; label: 11.5
title: Exercises
pagenum: 541; label: IV
title: Additional Topics
pagenum: 545; label: 12
title: Computational Geometry
pagenum: 547; label: 12.1
title: Range Trees
pagenum: 549; label: 12.2
title: Priority Search Trees
pagenum: 556; label: 12.3
title: Quadtrees and k-D Trees
pagenum: 561; label: 12.4
title: The Plane Sweep Technique
pagenum: 565; label: 12.5
title: Convex Hulls
pagenum: 572; label: 12.6
title: Java Example: Convex Hull
pagenum: 583; label: 12.7
title: Exercises
pagenum: 587; label: 13
title: NP-Completeness
pagenum: 591; label: 13.1
title: P and NP
pagenum: 593; label: 13.2
title: NP-Completeness
pagenum: 599; label: 13.3
title: Important NP-Complete Problems
pagenum: 603; label: 13.4
title: Approximation Algorithms
pagenum: 618; label: 13.5
title: Backtracking and Branch-and-Bound
pagenum: 627; label: 13.6
title: Exercises
pagenum: 638; label: 14
title: Algorithmic Frameworks
pagenum: 643; label: 14.1
title: External-Memory Algorithms
pagenum: 645; label: 14.2
title: Parallel Algorithms
pagenum: 657; label: 14.3
title: Online Algorithms
pagenum: 667; label: 14.4
title: Exercises
pagenum: 680; label: A
title: Useful Mathematical Facts
pagenum: 685; title: Bibliography
pagenum: 689; title: Index
pagenum: 698