CSE-257: Algorithms II
Undergraduate course, Jahangirnagar University, Department of Computer Science and Engineering, 2022
Objectives
After successful completion of this course, students should be able to:
- Argue the correctness of algorithms using inductive proofs and invariants.
- Analyze worst-case running times of algorithms using asymptotic analysis.
- Describe the advanced divide-and-conquer paradigm and explain when an algorithmic design situation calls for it. Derive and solve recurrences describing the performance of divide-and-conquer algorithms.
- Describe the advanced dynamic-programming paradigm and explain when an algorithmic design situation calls for it and analyze them.
- Explain the advanced graph algorithms and their analyses. Employ graphs to model engineering problems, when appropriate.
- Compare between different data structures. Pick an appropriate data structure for a design situation.
Lecture# | Description |
---|---|
Lec-1 | Introduction to Algorithms |
Lec-2 | Analysis of Algorithms |
Lec-3 | Asymptotic Notations and Recurrences |
Lec-4 | Divide and Conquer-Part-I |
Lec-5 | Divide and Conquer-Part-2 |
Lec-6 | Analysis of Linear Sorting Algo.(Counting and Radix Sort) |
Lec-7 | Sparse Table |
Lec-8 | Binary Indexed Tree |
Lec-9 | Segment Tree |
Lec-10 | SQRT Decomposition |
Lec-11 | Trie |
Lec-12 | AVL Tree |
Lec-13 | Red-Black Tree |
Lec-14 | KMP |
Lec-15 | SCC |
Lec-16 | Articulation Point |
Lec-17 | Dynamic Programming |
Lec-18 | Network Flow |