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
Complexity Theory
Computability Theory
Models of Computation
Turing Machines
Formal Definition
Components
Tape
Head
States
Transition Function
Configurations
Computation Steps
Acceptance and Rejection
Church-Turing Thesis
Statement
Implications
Alternative Models
Decidability
Decidable Languages
Undecidable Problems
The Halting Problem
Problem Statement
Proof of Undecidability
Diagonalization Argument
Rice's Theorem
Post Correspondence Problem
Reduction Techniques
Many-One Reductions
Turing Reductions
Recursive and Recursively Enumerable Languages
Definitions
Relationships
Closure Properties
Computational Complexity Classes
Time Complexity Classes
Class P
Polynomial-Time Algorithms
Examples of P Problems
Closure Properties
Class NP
Nondeterministic Polynomial Time
Verifier-Based Definition
Certificate Verification
Examples of NP Problems
Relationship to P
Class co-NP
Relationship to NP
Polynomial Hierarchy
Levels of the Hierarchy
Collapse Conditions
Space Complexity Classes
PSPACE
NPSPACE
Savitch's Theorem
PSPACE-Completeness
Other Complexity Classes
EXPTIME
NEXPTIME
BPP
RP and co-RP
ZPP
NP-Completeness Theory
NP-Complete Problems
Cook-Levin Theorem
Statement
Proof Outline
Significance
First NP-Complete Problem
Boolean Satisfiability (SAT)
Proving NP-Completeness
Two-Step Process
Showing Problem is in NP
Reduction from Known NP-Complete Problem
Polynomial-Time Reductions
Transitivity
Reduction Techniques
Direct Construction
Gadget-Based Reductions
Local Replacement
Classic NP-Complete Problems
3-SAT
Problem Definition
Reduction from SAT
Clique Problem
Problem Definition
Reduction from 3-SAT
Vertex Cover
Problem Definition
Reduction from Clique
Hamiltonian Path
Problem Definition
Reduction Techniques
Subset Sum
Problem Definition
Reduction from 3-SAT
Partition Problem
Graph Coloring
Independent Set
NP-Hard Problems
Relationship to NP-Complete
Examples
Traveling Salesperson Problem
General Satisfiability
Implications of P vs NP
Open Problem Status
Consequences if P = NP
Consequences if P ≠ NP
Practical Implications
Coping with NP-Completeness
Approximation Algorithms
Parameterized Complexity
Exponential-Time Algorithms
Heuristic Methods
Special Cases
Previous
6. Advanced Algorithm Topics
Go to top
Back to Start
1. Introduction to Algorithms