Skip to content

dimicorn/algo_course

Repository files navigation

Algorithms & Data Structures Course DRAFT

Main purpose of this course is to master effective algorithms to solve coding problems and to introduce main data structures. It is assumed that one has little to none knowledge of C++ and I would personally suggest to use C++ for solving proposed tasks. All algorithms will also be written in Python3, so doing assignments on Python3 is also acceptable.

Course Program

Algorithms

  1. Introduction
  2. Functions & Recursion
  3. Linear Search & Two Pointers
  4. Prefix Sum & Sliding Window
  5. $O(n^2)$ Sorts
  6. $O(n\log{n})$ Sorts
  7. Linear Sorts
  8. Divide and Conquer
  9. Greedy Algorithms
  10. Dynamic Programming 1D
  11. Dynamic Programming 2D
  12. Strings

Data Structures

  1. Array, Vector, List
  2. Stack & Queue
  3. Sets & Hash Maps
  4. Heap
  5. Binary Sort Trees
  6. Graphs I
  7. Graphs II
  8. Spanning Trees

For any questions zagorulia.ds at phystech.edu or what_is_spin in Telegram.