Useful Links
Computer Science
Algorithms and Data Structures
Algorithm Design and Analysis
1. Introduction to Algorithms
2. Algorithm Analysis
3. Brute-Force and Exhaustive Search
4. Divide and Conquer
5. Greedy Algorithms
6. Dynamic Programming
7. Backtracking and Branch-and-Bound
8. Graph Algorithms
9. String Matching Algorithms
10. Computational Complexity Theory
11. Advanced Topics in Algorithm Design
Divide and Conquer
The Divide and Conquer Paradigm
The Divide Step
The Conquer Step
The Combine Step
When Divide and Conquer Works
Recurrence Relations in Divide and Conquer
Classic Divide and Conquer Algorithms
Binary Search
Algorithm Description
Iterative Implementation
Recursive Implementation
Analysis
Merge Sort
Algorithm Description
Merging Process
Time Complexity Analysis
Space Complexity Analysis
Stability
Quick Sort
Algorithm Description
Partitioning Schemes
Lomuto Partition
Hoare Partition
Pivot Selection Strategies
Randomized Quick Sort
Worst-Case Analysis
Average-Case Analysis
Best-Case Analysis
In-Place Sorting
Heap Sort
Building a Heap
Heap Sort Algorithm
Analysis
Strassen's Algorithm
Matrix Multiplication Problem
Standard Algorithm
Strassen's Approach
Matrix Partitioning
Recursive Multiplication
Complexity Comparison
Closest-Pair of Points
Problem Statement
Brute-Force Approach
Divide and Conquer Approach
Efficient Merging
Analysis
Integer Multiplication
Karatsuba Algorithm
Analysis and Comparison
Previous
3. Brute-Force and Exhaustive Search
Go to top
Next
5. Greedy Algorithms