- This text is designed to teach students good programming and algorithm analysis skills simultaneously so that they can develop intricate programs with the maximum amount of efficiency.
- By analyzing an algorithm before it is actually coded, students can decide if a particular solution will be feasible and see how careful implementations can reduce the time constraint for large amounts of data. No algorithm or data structure is presented without an explanation of its running time.
- This book is suitable for either an advanced data structures (CS7) course or a first-year graduate course in algorithm analysis. As introductory sequences expand from two to three courses, this book is ideal at the end of the third course, bridging the way to the Algorithms course.
- Integrated coverage of the Java Collections Library.
- Discussion of algorithm and design techniques covers greedy algorithms, divide and conquer algorithms, dynamic programming, randomized algorithms, and backtracking.
- Covers topics and data structures such as Fibonacci heaps, skew heaps, binomial queue, skip lists and splay trees.
- A full chapter on amortized analysis examines the advanced data structures presented earlier in the book.
- Chapter on advanced data structures and their implementation covers red black trees, top down splay trees, k-d trees, pairing heaps, and more.
- Numerous figures and examples illustrate successive stages of algorithms.
- End-of-chapter exercises, ranked by difficulty, reinforce key chapter concepts.
- End-of-chapter references are either historical, representing the original source of the material, or they represent extensions and improvements to the results given in the text.
- The following Instructor Resources are available on the Instructor Resource Center:
- Source code for example programs
- PowerPoint slides
- Solution Manual
- Copyright 2012
- Dimensions: 7-3/8" x 9-1/8"
- Pages: 648
- Edition: 3rd
- ISBN-10: 0-13-257627-9
- ISBN-13: 978-0-13-257627-7
Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amount of efficiency. Readers should have some knowledge of intermediate programming, including topics as object-based programming and recursion, and some background in discrete math.
As the speed and power of computers increases, so does the need for effective programming and algorithm analysis. By approaching these skills in tandem, Mark Allen Weiss teaches readers to develop well-constructed, maximally efficient programs in Java.
Weiss clearly explains topics from binary heaps to sorting to NP-completeness, and dedicates a full chapter to amortized analysis and advanced data structures and their implementation. Figures and examples illustrating successive stages of algorithms contribute to Weiss’ careful, rigorous and in-depth analysis of each type of algorithm. A logical organization of topics and full access to source code complement the text’s coverage.
Table of Contents
- Chapter 1 Introduction
- Chapter 2 Algorithm Analysis
- Chapter 3 Lists, Stacks, and Queues
- Chapter 4 Trees
- Chapter 5 Hashing
- Chapter 6 Priority Queues (Heaps)
- Chapter 7 Sorting
- Chapter 8 The Disjoint Set Class
- Chapter 9 Graph Algorithms
- Chapter 10 Algorithm Design Techniques
- Chapter 11 Amortized Analysis
- Chapter 12 Advanced Data Structures and Implementation