CST207 Design and Analysis of Algorithms

Undergraduate course of computer science and technology, Xiamen University Malaysia, 2020-04

This course covers introduction to algorithms, asymptotic analysis, analyzing algorithms, probabilistic analysis, recursive algorithm, divide-and-conquer algorithms, dynamic programming, greedy algorithms, NP-complete theory, backtracking, branch-and-bound, searching problems and approximation algorithms.

Lecture Notes

Lecture 1: Introduction to Algorithms

Lecture 2: Theoretical Analysis

Lecture 3: Probabilistic and Recursive Analysis

Lecture 4: Divide-and-Conquer and Sorting Algorithms 1

Lecture 5: Divide-and-Conquer and Sorting Algorithms 2

Lecture 6: Dynamic Programming

Lecture 7: The Greedy Approach

Lecture 8: Backtracking

Lecture 9: Branch-and-Bound

Lecture 10: The Searching Problem

Lecture 11: The Theory of NP

Lecture 12: Approximation Algorithms

Assignments and Projects

Assignment 1

Assignment 2

Assignment 3

Assignment 4

Assignment 5

Assignment 6

Project 1

Project 2