Topics:
1. Analysis Framework
a. Asymptotic notations: big-oh, little-oh, big theta, big omega, little omega
b. Worst-case, best-case, average-case analysis of algorithms
c. Counting operations
2. Basic data structures, including specification, use, and storage analysis
a. Stacks
b. Queues
c. Hashing
d. Trees
e. Heaps and priority queues
f. Linked Lists
3. Search, sequential, exhaustive and analysis
4. Recursive functions and recurrence relations and their analysis
5. Sorts and their analysis
a. Elementary sorts (Insertion, Selection, Bubble)
b. Heapsort
c. Quicksort
d. MergeSort
e. Radix Sort
6. Tree types and analysis
a. AVL trees
b. 2-3 trees
c. Red-black trees
7. Graph Algorithms
a. Graph representations, adjacency matrix, adjacency list
b. Kruskal's algorithm and Prim's algorithm.
c. Dijkstra's algorithm.
d. Breadth-first search (BFS) and depth-first search (DFS)
e. Heuristics and heuristic search
f. MST, SPT via Prim’s Kruskal’s and Djikstra’s algorithms
8. Analysis of fundamental algorithms such as searching and sorting
9. Numerical probabilistic algorithms, Las Vegas and Monte Carlo algorithms, game-theoretic techniques
10. String-matching methods
References: (Textbooks)
Aho, Hopcroft, Ullman: The Design and Analysis of Computer Algorithms
Baase and Van Gelder: Computer Algorithms
Corman, Leiserson, Rivest, Stein: Introduction to Algorithms
Levitin: The Design and Analysis of Algorithms
Weiss: Data Structures and Algorithm Analysis