- 1
- 2
- Algorithms in Java: Parts 1-4, Third Edition
- Algorithms in Java: Parts 1-4, Third Edition
- Table of Contents
- Book Cover
- Copyright
- Preface
- Scope
- Use in the Curriculum
- Algorithms of Practical Use
- Programming Language
- Acknowledgments
- Java Consultant s Preface
- Notes on Exercises
- Part I: Fundamentals
- Chapter 1. Introduction
- 1.1 Algorithms
- 1.2 A Sample Problem: Connectivity
- 1.3 Union-Find Algorithms
- 1.4 Perspective
- 1.5 Summary of Topics
- Chapter 2. Principles of Algorithm Analysis
- 2.1 Implementation and Empirical Analysis
- 2.2 Analysis of Algorithms
- 2.3 Growth of Functions
- 2.4 Big-Oh Notation
- 2.5 Basic Recurrences
- 2.6 Examples of Algorithm Analysis
- 2.7 Guarantees, Predictions, and Limitations
- References for Part One
- Part II: Data Structures
- Chapter 3. Elementary Data Structures
- 3.1 Building Blocks
- 3.2 Arrays
- 3.3 Linked Lists
- 3.4 Elementary List Processing
- 3.5 Memory Allocation for Lists
- 3.6 Strings
- 3.7 Compound Data Structures
- Chapter 4. Abstract Data Types
- Exercises
- 4.1 Collections of Items
- 4.2 Pushdown Stack ADT
- 4.3 Examples of Stack ADT Clients
- 4.4 Stack ADT Implementations
- 4.5 Generic Implementations
- 4.6 Creation of a New ADT
- 4.7 FIFO Queues and Generalized Queues
- 4.8 Duplicate and Index Items
- 4.9 First-Class ADTs
- 4.10 Application-Based ADT Example
- 4.11 Perspective
- Chapter 5. Recursion and Trees
- 5.1 Recursive Algorithms
- 5.2 Divide and Conquer
- 5.3 Dynamic Programming
- 5.4 Trees
- 5.5 Mathematical Properties of Binary Trees
- 5.6 Tree Traversal
- 5.7 Recursive Binary-Tree Algorithms
- 5.8 Graph Traversal
- 5.9 Perspective
- References for Part Two
- Part III: Sorting
- Chapter 6. Elementary Sorting Methods
- 6.1 Rules of the Game
- 6.2 Generic Sort Implementations
- 6.3 Selection Sort
- 6.4 Insertion Sort
- 6.5 Bubble Sort
- 6.6 Performance Characteristics of Elementary Sorts
- 6.7 Algorithm Visualization
- 6.8 Shellsort
- 6.9 Sorting of Linked Lists
- 6.10 Key-Indexed Counting
- Chapter 7. Quicksort
- 7.1 The Basic Algorithm
- 7.2 Performance Characteristics of Quicksort
- 7.3 Stack Size
- 7.4 Small Subfiles
- 7.5 Median-of-Three Partitioning
- 1
- 2





