1. Basic Concept
Introduce foundamental knowledge of algorithms |
2. Sorting Searching and Selection
Searching algorithm uses for indicate the position of specified item in a list. Sorting algorithm uses for arrange items of a list in an order |
3. Divide-and-Conquer & Recursion
Work by recursively breaking down into smaller problems of the related type, recursively do so until the problems become simple enough to solve. |
|
|
|
4. Greedy algorithms
Greedy algorithms are mainly used for solving combinatorial optimization problems.
|
5. Dynamic programming
Algorithm for solving problems by breaking down into similar subproblems |
6. Data Structures
Method of storing data so that it is efficiency in insert, delete, access, etc. |
|
- Longest increasing subsequence
- Longest common subsequence
- Palindrome
- Matrix-chain multiplication
- ...More
|
- Array
- Linked list
- Heap
- Hashes
- ...More
|
7. Graph |
8. Geometry Algorithm
Programming method for solving Geometry problems, such as symmetry, intersection, rotation, resize, etc. |
9. Linear Programming |
|
- 2D geometry
- 3D geometry
- Closest pair of points
- Convex hull
- ...More
|
- Big integer
- String searching
- Range minimum query
- ...More
|