Useful Links
Computer Science
Algorithms and Data Structures
Algorithms
1. Introduction to Algorithms
2. Data Structures
3. Algorithmic Design Paradigms
4. Sorting and Searching Algorithms
5. Graph Algorithms
6. Advanced Algorithm Topics
7. Complexity Theory
Advanced Algorithm Topics
String Algorithms
String Matching Fundamentals
Pattern and Text
Exact vs Approximate Matching
Performance Metrics
Naive String Matching
Algorithm Description
Implementation
Time Complexity Analysis
Best Case
Worst Case
Average Case
Space Complexity
Rabin-Karp Algorithm
Hashing-Based Approach
Rolling Hash Technique
Hash Function Design
Efficient Hash Updates
Implementation
Time Complexity Analysis
Space Complexity
Collision Handling
Spurious Matches
Verification Step
Applications
Multiple Pattern Matching
2D Pattern Matching
Knuth-Morris-Pratt Algorithm
Failure Function
Computation Algorithm
KMP Algorithm Description
Implementation
Time Complexity Analysis
Space Complexity
Correctness Proof
Boyer-Moore Algorithm
Bad Character Rule
Good Suffix Rule
Implementation
Time Complexity Analysis
Practical Performance
String Matching with Finite Automata
Automaton Construction
Pattern Recognition
Implementation
Advanced String Algorithms
Suffix Arrays
Construction Algorithms
Suffix Trees
Construction
Z-Algorithm
Manacher's Algorithm
Computational Geometry
Geometric Primitives
Points
Lines
Line Segments
Polygons
Circles
Fundamental Operations
Orientation Test
Point-in-Polygon Test
Line Intersection
Distance Calculations
Convex Hull Algorithms
Convex Hull Definition
Graham Scan
Algorithm Description
Polar Angle Sorting
Implementation
Time Complexity
Jarvis March
Algorithm Description
Gift Wrapping Approach
Implementation
Time Complexity
QuickHull Algorithm
Divide-and-Conquer Approach
Line Segment Intersection
Problem Definition
Brute-Force Approach
Algorithm Description
Time Complexity
Sweep Line Algorithm
Event Point Scheduling
Status Structure
Implementation
Time Complexity
Closest Pair of Points
Problem Definition
Brute-Force Approach
Algorithm Description
Time Complexity
Divide-and-Conquer Approach
Algorithm Description
Merge Step
Implementation
Time Complexity Analysis
Geometric Data Structures
Range Trees
Segment Trees for Geometry
kd-Trees
Quadtrees
Applications
Computer Graphics
Geographic Information Systems
Robotics
Computer-Aided Design
Randomized Algorithms
Randomization in Algorithms
Sources of Randomness
Pseudorandom Number Generation
Random Sampling
Algorithm Classifications
Las Vegas Algorithms
Always Correct Results
Random Running Time
Examples
Randomized QuickSort
Skip Lists
Expected Running Time Analysis
Monte Carlo Algorithms
Fixed Running Time
Probabilistic Correctness
Error Probability
Examples
Primality Testing
Polynomial Identity Testing
Error Reduction Techniques
Randomization Techniques
Random Sampling
Uniform Sampling
Reservoir Sampling
Importance Sampling
Randomized Partitioning
Random Pivot Selection
Applications in Sorting
Random Permutations
Fisher-Yates Shuffle
Probabilistic Analysis
Expected Value Calculations
Concentration Inequalities
Markov's Inequality
Chebyshev's Inequality
Chernoff Bounds
Union Bound
Linearity of Expectation
Advanced Topics
Randomized Data Structures
Skip Lists
Bloom Filters
Hash Tables with Universal Hashing
Derandomization Techniques
Method of Conditional Expectations
Pessimistic Estimators
Applications
Cryptography
Machine Learning
Distributed Systems
Game Theory
Approximation Algorithms
Approximation Concepts
Optimization Problems
Minimization Problems
Maximization Problems
Approximation Ratio
Performance Guarantee
Approximation Schemes
PTAS
FPTAS
Design Techniques
Greedy Approximation
Local Search
Linear Programming Relaxation
Primal-Dual Method
Classic Approximation Problems
Vertex Cover Problem
Problem Definition
2-Approximation Algorithm
Performance Analysis
Lower Bounds
Set Cover Problem
Problem Definition
Greedy Algorithm
Logarithmic Approximation
Inapproximability Results
Traveling Salesperson Problem
General TSP
Metric TSP
2-Approximation Algorithm
Christofides Algorithm
Performance Bounds
Inapproximability Results
Bin Packing Problem
Problem Definition
First Fit Algorithm
Best Fit Algorithm
First Fit Decreasing
Performance Analysis
Knapsack Problem
Fractional Knapsack
0/1 Knapsack Approximation
FPTAS for Knapsack
Inapproximability Theory
PCP Theorem
Hardness of Approximation
Gap-Preserving Reductions
Applications
Network Design
Scheduling
Resource Allocation
Machine Learning
Previous
5. Graph Algorithms
Go to top
Next
7. Complexity Theory