Chapter 0 Week 1¶
Chapter 1 Week 2¶
- -1.1. Algorithm Analysis
- -1.1.1. Algorithm Analysis
- -1.1.1.1. Algorithm Efficiency
- -1.1.1.2. How to Measure Efficiency?
- -1.1.1.3. Problems, Algorithms, Programs
- -1.1.1.4. Growth Rate Example (1)
- -1.1.1.5. Growth Rate Example (2)
- -1.1.1.6. Growth Rate Graph
- -1.1.1.7. Best, Worst, Average Cases
- -1.1.1.8. Which Analysis to Use?
- -1.1.1.9. Faster Computer or Algorithm?
- -1.1.1.10. Faster Computer or Algorithm? 2
- -1.1.1.11. Asymptotic Analysis: Big-oh
- -1.1.1.12. Big-oh Notation (cont)
- -1.1.1.13. Big-Oh Examples
- -1.1.1.14. Big-Oh Examples (2)
- -1.1.1.15. A Common Misunderstanding
- -1.1.1.16. Big-Omega \(\Omega\)
- -1.1.1.17. Big-Omega Example
- -1.1.1.18. Theta Notation \(\Theta\)
- -1.1.1.19. A Common Misunderstanding
- -1.1.1.20. Simplifying Rules
- -1.1.1.21. Summary
- -1.1.1.22. .
- -1.1.1.23. Time Complexity Examples (1)
- -1.1.1.24. Time Complexity Examples (2)
- -1.1.1.25. Time Complexity Examples (3)
- -1.1.1.26. Time Complexity Examples (4)
- -1.1.1.27. Binary Search
- -1.1.1.28. Other Control Statements
- -1.1.1.29. Analyzing Problems
- -1.1.1.30. Analyzing Problems: Example
- -1.1.1.31. Space/Time Tradeoff Principle
- -1.1.1.32. Multiple Parameters
- -1.1.1.33. Space Complexity
- -1.1.1. Algorithm Analysis
Chapter 2 Week 3¶
- -1.1. Lists
- -1.1.1. Lists
- -1.1.1.1. Lists
- -1.1.1.2. List Implementation Concepts
- -1.1.1.3. List ADT (1)
- -1.1.1.4. List ADT (2)
- -1.1.1.5. List ADT (3)
- -1.1.1.6. List ADT Examples
- -1.1.1.7. List Find Function
- -1.1.1.8. Array-Based List Class (1)
- -1.1.1.9. Array-Based List Insert
- -1.1.1.10. Link Class
- -1.1.1.11. Linked List Position (1)
- -1.1.1.12. Linked List Position (2)
- -1.1.1.13. Linked List Position (3)
- -1.1.1.14. Linked List Class (1)
- -1.1.1.15. Linked List Class (2)
- -1.1.1.16. Insertion
- -1.1.1.17. Removal
- -1.1.1.18. Prev
- -1.1.1.19. Overhead
- -1.1.1.20. Comparison of Implementations
- -1.1.1.21. Space Comparison
- -1.1.1.22. Space Example
- -1.1.1.23. Freelist
- -1.1.1.24. Doubly Linked Lists
- -1.1.1.25. Doubly Linked Node (1)
- -1.1.1.26. Doubly Linked Insert
- -1.1.1.27. Doubly Linked Remove
- -1.1.1. Lists
- -1.2. Binary Trees Part 1
Chapter 3 Week 4¶
- -1.1. Binary Trees Part 2
- -1.1.1. Binary Trees Part 2
- -1.1.1.1. Full and Complete Binary Trees
- -1.1.1.2. Full Binary Tree Theorem (1)
- -1.1.1.3. Full Binary Tree Theorem (2)
- -1.1.1.4. Full Binary Tree Corollary
- -1.1.1.5. Dictionary
- -1.1.1.6. .
- -1.1.1.7. Dictionary (2)
- -1.1.1.8. Binary Search Trees
- -1.1.1.9. BST as a Dictionary (1)
- -1.1.1.10. BST as a Dictionary (2)
- -1.1.1.11. BST
findhelp
- -1.1.1.12. BST
inserthelp
- -1.1.1.13. BST
deletemax
- -1.1.1.14. BST
removehelp
- -1.1.1.15. .
- -1.1.1.16. BST Analysis
- -1.1.1. Binary Trees Part 2
- -1.2. Binary Trees Part 3
- -1.2.1. Binary Trees Part 3
- -1.2.1.1. Comparison (1)
- -1.2.1.2. Comparison (2)
- -1.2.1.3. KVpair
- -1.2.1.4. .
- -1.2.1.5. KVpair: Generics
- -1.2.1.6. .
- -1.2.1.7. Using the KVpair (1)
- -1.2.1.8. Binary Tree Implementation (1)
- -1.2.1.9. Binary Tree Implementation (2)
- -1.2.1.10. Inheritance (1)
- -1.2.1.11. Inheritance (2)
- -1.2.1.12. Inheritance (3)
- -1.2.1.13. Design Patterns
- -1.2.1.14. Composite (1)
- -1.2.1.15. Composite (2)
- -1.2.1.16. Composite (3)
- -1.2.1.17. Space Overhead (1)
- -1.2.1.18. Space Overhead (2)
- -1.2.1. Binary Trees Part 3
Chapter 4 Week 5¶
Chapter 5 Week 6¶
Chapter 6 Week 7-8¶
- -1.1. Sorting Part 1
- -1.1.1. Sorting Part 1
- -1.1.1.1. Sorting
- -1.1.1.2. Insertion Sort
- -1.1.1.3. Initial Step
- -1.1.1.4. Analysis: Worst Case
- -1.1.1.5. Analysis: Best Case
- -1.1.1.6. Analysis: Average Case
- -1.1.1.7. Bubble Sort
- -1.1.1.8. Analysis
- -1.1.1.9. Selection Sort
- -1.1.1.10. Analysis
- -1.1.1.11. Summary
- -1.1.1.12. Code Tuning (1)
- -1.1.1.13. Exchange Sorting
- -1.1.1. Sorting Part 1
- -1.2. Sorting Part 2
- -1.2.1. Sorting Part 2
- -1.2.1.1. Shellsort
- -1.2.1.2. Shellsort (2)
- -1.2.1.3. Mergesort
- -1.2.1.4. .
- -1.2.1.5. Mergesort cost
- -1.2.1.6. Quicksort
- -1.2.1.7. Quicksort Partition
- -1.2.1.8. Quicksort Partition Cost
- -1.2.1.9. Quicksort Summary
- -1.2.1.10. Quicksort Worst Case
- -1.2.1.11. .
- -1.2.1.12. Quicksort Best Case
- -1.2.1.13. .
- -1.2.1.14. Quicksort Average Case
- -1.2.1.15. Optimizations for Quicksort
- -1.2.1.16. Heapsort
- -1.2.1.17. Heapsort Analysis
- -1.2.1.18. Binsort
- -1.2.1.19. Radix Sort: Linked List
- -1.2.1.20. .
- -1.2.1.21. Radix Sort: Array
- -1.2.1.22. Radix Sort Implementation
- -1.2.1.23. .
- -1.2.1.24. Radix Sort Analysis
- -1.2.1.25. Empirical Analysis
- -1.2.1.26. Sorting Lower Bound (1)
- -1.2.1.27. Sorting Lower Bound (2)
- -1.2.1. Sorting Part 2
Chapter 7 Week 8-9¶
- -1.1. File Processing and Buffer Pools
- -1.1.1. File Processing and Buffer Pools
- -1.1.1.1. Programmer’s View of Files
- -1.1.1.2. Java File Functions
- -1.1.1.3. Primary vs. Secondary Storage
- -1.1.1.4. Comparisons
- -1.1.1.5. Golden Rule of File Processing
- -1.1.1.6. Disk Drives
- -1.1.1.7. Sectors
- -1.1.1.8. Terms
- -1.1.1.9. Seek Time
- -1.1.1.10. Other Factors
- -1.1.1.11. (Old) Disk Spec Example
- -1.1.1.12. Disk Access Cost Example (1)
- -1.1.1.13. Disk Access Cost Example (2)
- -1.1.1.14. How Much to Read?
- -1.1.1.15. Newer Disk Spec Example
- -1.1.1.16. Buffers
- -1.1.1.17. Buffer Pools
- -1.1.1.18. Buffer Pools
- -1.1.1.19. Organizing Buffer Pools
- -1.1.1.20. LRU
- -1.1.1.21. Dirty Bit
- -1.1.1.22. Bufferpool ADT: Message Passing
- -1.1.1.23. Bufferpool ADT: Buffer Passing
- -1.1.1.24. Design Issues
- -1.1.1.25. Some Goals
- -1.1.1.26. Improved Interface
- -1.1.1.27. Improved Interface (2)
- -1.1.1.28. External Sorting
- -1.1.1.29. Model of External Computation
- -1.1.1.30. Key Sorting
- -1.1.1.31. Simple External Mergesort (1)
- -1.1.1.32. Simple External Mergesort (2)
- -1.1.1.33. Simple External Mergesort (3)
- -1.1.1.34. Problems with Simple Mergesort
- -1.1.1.35. A Better Process
- -1.1.1.36. Breaking a File into Runs
- -1.1.1.37. Replacement Selection (1)
- -1.1.1.38. Replacement Selection (2)
- -1.1.1.39. RS Example
- -1.1.1.40. Snowplow Analogy (1)
- -1.1.1.41. Snowplow Analogy (2)
- -1.1.1.42. Problems with Simple Merge
- -1.1.1.43. Multiway Merge (1)
- -1.1.1.44. Multiway Merge (2)
- -1.1.1.45. Limits to Multiway Merge (1)
- -1.1.1.46. Limits to Multiway Merge (2)
- -1.1.1.47. General Principles
- -1.1.1. File Processing and Buffer Pools
Chapter 8 Week 10¶
- -1.1. Hashing
- -1.1.1. Hashing
- -1.1.1.1. Hashing (1)
- -1.1.1.2. Hashing (2)
- -1.1.1.3. Simple Examples
- -1.1.1.4. Collisions (1)
- -1.1.1.5. Collisions (2)
- -1.1.1.6. Hash Functions (1)
- -1.1.1.7. Hash Functions (2)
- -1.1.1.8. Simple Mod Function
- -1.1.1.9. Binning
- -1.1.1.10. Mod vs. Binning
- -1.1.1.11. Mid-Square Method
- -1.1.1.12. Strings Function: Character Adding
- -1.1.1.13. String Folding
- -1.1.1.14. Open Hashing
- -1.1.1.15. Bucket Hashing (1)
- -1.1.1.16. Bucket Hashing (2)
- -1.1.1.17. Closed Hashing
- -1.1.1.18. Collision Resolution
- -1.1.1.19. Insertion
- -1.1.1.20. Search
- -1.1.1.21. Probe Function
- -1.1.1.22. Linear Probing (1)
- -1.1.1.23. Linear Probing (2)
- -1.1.1.24. Problem with Linear Probing
- -1.1.1.25. Linear Probing by Steps (1)
- -1.1.1.26. Linear Probing by Steps (2)
- -1.1.1.27. Pseudo-Random Probing (1)
- -1.1.1.28. Pseudo-Random Probing (2)
- -1.1.1.29. Quadratic Probing
- -1.1.1.30. Double Hashing (1)
- -1.1.1.31. Double Hashing (2)
- -1.1.1.32. Analysis of Closed Hashing
- -1.1.1.33. Deletion
- -1.1.1.34. Tombstones (1)
- -1.1.1.35. Tombstones (2)
- -1.1.1. Hashing
- -1.2. Memory Management
- -1.2.1. Memory Management
- -1.2.1.1. Memory Management
- -1.2.1.2. Memory Manager ADT
- -1.2.1.3. Implementation Issues
- -1.2.1.4. Dynamic Storage Allocation
- -1.2.1.5. Fragmentation
- -1.2.1.6. Managing the Free Blocks
- -1.2.1.7. Selecting a Free Block
- -1.2.1.8. Sequential Fit Methods
- -1.2.1.9. Example
- -1.2.1.10. .
- -1.2.1.11. Buddy Method
- -1.2.1.12. Buddy Method Example
- -1.2.1.13. .
- -1.2.1.14. Failure Policies
- -1.2.1. Memory Management
Chapter 9 Week 11¶
Chapter 10 Week 12¶
- -1.1. Graphs
- -1.1.1. Graphs
- -1.1.1.1. Graphs
- -1.1.1.2. Paths, Cycles
- -1.1.1.3. Connected Components
- -1.1.1.4. Directed Graph Representation
- -1.1.1.5. Undirected Graph Representation
- -1.1.1.6. Representation Space Costs
- -1.1.1.7. Graph ADT
- -1.1.1.8. .
- -1.1.1.9. Visiting Neighbors
- -1.1.1.10. Graph Traversals
- -1.1.1.11. Graph Traversals (2)
- -1.1.1.12. Depth First Search (1)
- -1.1.1.13. Depth First Search (2)
- -1.1.1.14. Depth First Search (3)
- -1.1.1.15. Breadth First Search (1)
- -1.1.1.16. Breadth First Search (3)
- -1.1.1.17. Topological Sort
- -1.1.1.18. Depth-First Topological Sort (1)
- -1.1.1.19. Depth-First Topological Sort (1)
- -1.1.1.20. .
- -1.1.1.21. Queue-Based Topsort (1)
- -1.1.1.22. .
- -1.1.1.23. Queue-Based Topsort (2)
- -1.1.1.24. .
- -1.1.1.25. Shortest Paths Problems
- -1.1.1.26. Shortest Paths Definitions
- -1.1.1.27. Single-Source Shortest Paths
- -1.1.1.28. Dijkstra’s Algorithm Example
- -1.1.1.29. .
- -1.1.1.30. Dijkstra’s Implementation
- -1.1.1.31. Implementing minVertex
- -1.1.1.32. Approach 1
- -1.1.1.33. Approach 2
- -1.1.1.34. .
- -1.1.1.35. All-pairs Shortest Paths (1)
- -1.1.1.36. All-pairs Shortest Paths (2)
- -1.1.1.37. Floyd’s Algorithm
- -1.1.1.38. Minimal Cost Spanning Trees
- -1.1.1.39. MST Example
- -1.1.1.40. Prim’s MST Algorithm
- -1.1.1.41. .
- -1.1.1.42. Implementation 1
- -1.1.1.43. Alternate Implementation
- -1.1.1.44. Kruskal’s MST Algorithm (1)
- -1.1.1.45. Kruskal’s MST Algorithm (2)
- -1.1.1.46. .
- -1.1.1.47. Kruskal’s MST Algorithm (3)
- -1.1.1. Graphs
Chapter 11 Week 13¶
- -1.1. Indexing
- -1.1.1. Indexing
- -1.1.1.1. Indexing
- -1.1.1.2. Files and Indexing
- -1.1.1.3. Keys and Indexing
- -1.1.1.4. Linear Indexing (1)
- -1.1.1.5. Linear Indexing (2)
- -1.1.1.6. Tree Indexing (1)
- -1.1.1.7. Tree Indexing (2)
- -1.1.1.8. Tree Indexing (3)
- -1.1.1.9. Tree Indexing (4)
- -1.1.1.10. 2-3 Tree
- -1.1.1.11. 2-3 Tree Example
- -1.1.1.12. 2-3 Tree Insertion (1)
- -1.1.1.13. 2-3 Tree Insertion (2)
- -1.1.1.14. 2-3 Tree Insertion (3)
- -1.1.1.15. B-Trees (1)
- -1.1.1.16. B-Trees (2)
- -1.1.1.17. B-Tree Search
- -1.1.1.18. B+-Trees
- -1.1.1.19. 23+-Tree Build Example
- -1.1.1.20. 23+-Tree Search Example
- -1.1.1.21. 23+-Tree Delete Example
- -1.1.1.22. B+-Tree Find
- -1.1.1.23. B+-Tree Insert
- -1.1.1.24. B+-Tree Deletion
- -1.1.1.25. B+-Tree Insert (Degree 5)
- -1.1.1.26. B-Tree Space Analysis (1)
- -1.1.1.27. B-Tree Space Analysis (2)
- -1.1.1.28. B-Trees: The Big Idea
- -1.1.1. Indexing
Chapter 12 Week 14¶
- -1.1. General Trees
- -1.1.1. General Trees
- -1.1.1.1. General Trees
- -1.1.1.2. General Tree ADT
- -1.1.1.3. General Tree Traversal
- -1.1.1.4. Rep: Lists of Children
- -1.1.1.5. Rep: Dynamic Node (Array)
- -1.1.1.6. Rep: Dynamic Node (linked list)
- -1.1.1.7. Rep: Left-Child/Right-Sibling
- -1.1.1.8. Serialization
- -1.1.1.9. Binary tree serialization
- -1.1.1.10. Alternate serialization
- -1.1.1.11. Bit Vector Serialization
- -1.1.1.12. General Tree Serialization
- -1.1.1. General Trees