CS600: Advanced Algorithms

  1. Course Info.

  2. Basic Data Structures.

  3. Sorting.

  4. Divide and Conquer.

  5. Matrix Data Structure and Algorithms.

  6. Binary Trees.

    • Tree basics [slides] [video].

    • Binary search tree: search and insertion [slides].

    • Binary search tree: traversal [slides].

    • Binary search tree: deletion [slides].

  7. Priority Queues.

  8. Disjoint Sets.

  9. Graph Basics.

    • Graph data structures [slides].

    • Topological sort [slides].

  10. Shortest Paths.

    • Shortest path problem [slides].

    • Single-source shortest path in unweighted graphs [slides].

    • Single-source shortest path in weighted graphs [slides].

  11. Minimum Spanning Trees.

  12. Network Flow Problems.

    • Maximum flow problem [slides].

    • Ford-Fulkerson algorithm and Edmonds–Karp algorithm [slides].

    • Dinic's algorithm [slides].

    • Max-flow and min-cut [slides].

  13. Bipartite Graphs.

    • Testing bipartiteness [slides].

    • Maximum cardinality bipartite matching [slides].

    • Maximum weight bipartite matching [slides].

    • Stable marriage problem [slides].

  14. Dynamic Programming.

  15. Strings.

  16. Randomized Algorithms.

  17. Hashing.

    • Hash table [slides].

    • Collision-resistant hash [slides].

    • Locality sensitive hashing [slides].

  18. Cryptographic Algorithms.

  19. Crypto Currency.