Basic Topic
1. Basic Concept
1.1 What are algorithms?
1.2 Performance of different algorithms
1.3 Time Complexity
1.4 Pseudocode
1.5 How to be good at algorithms?
2. Sorting, Searching, Selection

2.1 Selection Sort
2.2 Bubble Sort
2.3 Insertion Sort
2.4 Can We sort faster? (Part 1)
2.5 Merge Sort
2.6 Quick Sort
2.7 Can We sort faster? (Part 2)
2.8 Counting Sort
2.9 Searching
2.10 Quick Select
2.11 Exercises

3. Divide-and-Conquer & Recursion
3.1 Binary Search
3.2 Merge Sort
3.3 Tower of Hanoi
3.4 Fast Exponentiation
3.5 Median (k-th smallest element)
3.6 Recursive descent parser
3.7 Factorial
3.8 Fibonacci numbers
3.9 Greatest common divisor
4. Greedy algorithms
4.1 Activity-Selection Problem
4.2 Largest rectangle problem
4.3 Huffman Codeing
4.4 Fractional knapsack
4.5 Traceling salesman problem (TSP)
4.6 Set cover problem
5. Dynamic programming
 
6. Data Structures
 
Advanced Topic
7. Graph
7.1 Traversal
7.2 Cycle
7.3 Topological Ordering
7.4 Strong Connected Component
7.5 Shortest Path
7.6 Minimum Spanning Tree
7.7 Matching
8. Geometry
 
9. Linear Programming
 
Programs
1. Graph
1. 1 Graph
(constructor)
size
addVertex
addEdge
degree
neighbour
eccentricity
shortestPath
allPairsShortestPath
isTree
isConnected
isComplete
isBipartite
isEulerian
radius
bipartiteMatching
cutVertex
bridge
1.2 DirectedGraph
(construct)
size
addVertex
addEdge
inDegree
outDegree
parent
children
isAcyclic
topologicalSort
strongConnectedComponent
1.3 Network
Dynamic programming
Geometry
String Matching
More
About us
References
Contact us