What is algorithm?
A method that can be used by a computer for the
solution of a problem.
A sequence of computational steps that transform
the input into the output.
A method that can be used by a computer for the
solution of a problem.
A sequence of computational steps that transform
the input into the output.
Basic Data Structures
- Elementary Data Structures [ PDF handouts ]
- Vectors [ PDF handouts ]
- Stacks [ PDF handouts ]
- Queues [ PDF handouts ]
- Sequences [ PDF handouts ]
- Trees [ PDF handouts ]
- Heaps [ PDF handouts ]
- Priority Queues [ PDF handouts ]
- Hash Tables [ PDF handouts ]
- Dictionaries [ PDF handouts ]
Search Trees and Skip Lists
- Binary Search Trees [ PDF handouts ]
- AVL Trees [ PDF handouts ]
- (2,4) Trees [ PDF handouts ]
- Red-Black Trees [ PDF handouts ]
- Skip Lists [ PDF handouts ]
- Splay Trees [ PDF handouts ]
- Locators [ PDF handouts ]
Sorting, Sets, and Selection
- Merge Sort [ PDF handouts ]
- Quick Sort [ PDF handouts ]
- Sorting Lower Bound [ PDF handouts ]
- Sets [ PDF handouts ]
- Radix Sort [ PDF handouts ]
- Selection [ PDF handouts ]
Fundamental Techniques
- Greedy Method [ PDF handouts ]
- Divide-and-Conquer [ PDF handouts ]
- Dynamic Programming [ PDF handouts ]
Text Processing
- Pattern Matching [ PDF handouts ]
- Tries [ PDF handouts ]
Number Theory and Cryptography
- Numerical Algorithms [ PDF handouts ]
- FFT [ PDF handouts ]
- Cryptography [ PDF handouts ]
- RSA Encryption [ PDF handouts ]
- Information Security [ PDF handouts ]