did-you-know? rent-now

Rent More, Save More! Use code: ECRENTAL

did-you-know? rent-now

Rent More, Save More! Use code: ECRENTAL

5% off 1 book, 7% off 2 books, 10% off 3+ books

9780201060355

Computer Algorithms : Introduction to Design and Analysis

by
  • ISBN13:

    9780201060355

  • ISBN10:

    0201060353

  • Edition: 2nd
  • Format: Hardcover
  • Copyright: 1988-01-01
  • Publisher: Addison-Wesley
  • View Upgraded Edition
  • Purchase Benefits
  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $69.00

Summary

Drawing upon combined decades of teaching experience, Sara Baase and Allen Van Gelder have extensively revised this best seller to make it the most current and accessible choice for anyone interested in gaining a solid understanding of computer algorithm analysis and design. This edition features the addition of new topics such as computing with DNA, the accelerated version of heapsort, and dynamic sets, as well as an increased emphasis on algorithm design techniques such as divide-and-conquer and greedy algorithms. It continues the tradition of solid mathematical analysis and clear writing style that made it so popular in previous editions. This edition features implementations in a Java-like pseudocode, and includes an appendix with Java examples.

Author Biography

Sara Baase is a Professor of Computer Science at San Diego State University and has been teaching CS for 25 years. Dr. Baase is a three-time recipient of the San Diego State University Alumni Association's Outstanding Faculty Award, and she has written a number of textbooks in the areas of algorithms, assembly language, and social and ethical issues related to computing. She earned her doctorate at the University of California, Berkeley. Allen Van Gelder is a Professor of Computer Science at the University of California at Santa Cruz, where he has been teaching CS for 12 years. He received his Ph.D. in Computer Science at Stanford University and is a past recipient of the Presidential Young Investigator Award.

Table of Contents

Prefacep. vii
Analyzing Algorithms and Problems: Principles and Examplesp. 1
Introductionp. 2
Java as an Algorithm Languagep. 3
Mathematical Backgroundp. 11
Analyzing Algorithms and Problemsp. 30
Classifying Functions by Their Asymptotic Growth Ratesp. 43
Searching an Ordered Arrayp. 53
Exercisesp. 61
Notes and Referencesp. 67
Data Abstraction and Basic Data Structuresp. 69
Introductionp. 70
ADT Specification and Design Techniquesp. 71
Elementary ADTs--Lists and Treesp. 73
Stacks and Queuesp. 86
ADTs for Dynamic Setsp. 89
Exercisesp. 95
Notes and Referencesp. 100
Recursion and Inductionp. 101
Introductionp. 102
Recursive Proceduresp. 102
What Is a Proof?p. 108
Induction Proofsp. 111
Proving Correctness of Proceduresp. 118
Recurrence Equationsp. 130
Recursion Treesp. 134
Exercisesp. 141
Notes and Referencesp. 146
Sortingp. 149
Introductionp. 150
Insertion Sortp. 151
Divide and Conquerp. 157
Quicksortp. 159
Merging Sorted Sequencesp. 171
Mergesortp. 174
Lower Bounds for Sorting by Comparison of Keysp. 178
Heapsortp. 182
Comparison of Four Sorting Algorithmsp. 197
Shellsortp. 197
Radix Sortingp. 201
Exercisesp. 206
Programsp. 221
Notes and Referencesp. 221
Selection and Adversary Argumentsp. 223
Introductionp. 224
Finding max and minp. 226
Finding the Second-Largest Keyp. 229
The Selection Problemp. 233
A Lower Bound for Finding the Medianp. 238
Designing Against an Adversaryp. 240
Exercisesp. 242
Notes and Referencesp. 246
Dynamic Sets and Searchingp. 249
Introductionp. 250
Array Doublingp. 250
Amortized Time Analysisp. 251
Red-Black Treesp. 253
Hashingp. 275
Dynamic Equivalence Relations and Union-Find Programsp. 283
Priority Queues with a Decrease Key Operationp. 295
Exercisesp. 302
Programsp. 309
Notes and Referencesp. 309
Graphs and Graph Traversalsp. 313
Introductionp. 314
Definitions and Representationsp. 314
Traversing Graphsp. 328
Depth-First Search on Directed Graphsp. 336
Strongly Connected Components of a Directed Graphp. 357
Depth-First Search on Undirected Graphsp. 364
Biconnected Components of an Undirected Graphp. 366
Exercisesp. 375
Programsp. 384
Notes and Referencesp. 385
Graph Optimization Problems and Greedy Algorithmsp. 387
Introductionp. 388
Prim's Minimum Spanning Tree Algorithmp. 388
Single-Source Shortest Pathsp. 403
Kruskal's Minimum Spanning Tree Algorithmp. 412
Exercisesp. 416
Programsp. 421
Notes and Referencesp. 422
Transitive Closure, All-Pairs Shortest Pathsp. 425
Introductionp. 426
The Transitive Closure of a Binary Relationp. 426
Warshall's Algorithm for Transitive Closurep. 430
All-Pairs Shortest Paths in Graphsp. 433
Computing Transitive Closure by Matrix Operationsp. 436
Multiplying Bit Matrices--Kronrod's Algorithmp. 439
Exercisesp. 446
Programsp. 449
Notes and Referencesp. 449
Dynamic Programmingp. 451
Introductionp. 452
Subproblem Graphs and Their Traversalp. 453
Multiplying a Sequence of Matricesp. 457
Constructing Optimal Binary Search Treesp. 466
Separating Sequences of Words into Linesp. 471
Developing a Dynamic Programming Algorithmp. 474
Exercisesp. 475
Programsp. 481
Notes and Referencesp. 482
String Matchingp. 483
Introductionp. 484
A Straightforward Solutionp. 485
The Knuth-Morris-Pratt Algorithmp. 487
The Boyer-Moore Algorithmp. 495
Approximate String Matchingp. 504
Exercisesp. 508
Programsp. 512
Notes and Referencesp. 512
Polynomials and Matricesp. 515
Introductionp. 516
Evaluating Polynomial Functionsp. 516
Vector and Matrix Multiplicationp. 522
The Fast Fourier Transform and Convolutionp. 528
Exercisesp. 542
Programsp. 546
Notes and Referencesp. 546
NP-Complete Problemsp. 547
Introductionp. 548
P and NPp. 548
NP-Complete Problemsp. 559
Approximation Algorithmsp. 570
Bin Packingp. 572
The Knapsack and Subset Sum Problemsp. 577
Graph Coloringp. 581
The Traveling Salesperson Problemp. 589
Computing with DNAp. 592
Exercisesp. 600
Notes and Referencesp. 608
Parallel Algorithmsp. 611
Introductionp. 612
Parallelism, the PRAM, and Other Modelsp. 612
Some Simple PRAM Algorithmsp. 616
Handling Write Conflictsp. 622
Merging and Sortingp. 624
Finding Connected Componentsp. 628
A Lower Bound for Adding n Integersp. 641
Exercisesp. 643
Notes and Referencesp. 647
Java Examples and Techniquesp. 649
Introductionp. 650
A Java Main Programp. 651
A Simple Input Libraryp. 656
Documenting Java Classesp. 658
Generic Order and the "Comparable" Interfacep. 659
Subclasses Extend the Capability of Their Superclassp. 663
Copy via the "Cloneable" Interfacep. 667
Bibliographyp. 669
Indexp. 679
Table of Contents provided by Syndetics. All Rights Reserved.

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program