8000 GitHub - Stiimo/mipt_algo_course: Информационная страница по курсу
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Stiimo/mipt_algo_course

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MIPT algo course

Добро пожаловать в репозиторий, посвященый курсу по алгоритмам и структурам данных. Здесь будут выкладываться ссылки на всякий полезный для понимания курса материал.
К тому же напомню, что основное в нашем курсе - это изучение алгоритмов и структур данных. В перспективе вы можете перейти на другой язык программирования, который будет для Вас более удобным. Или это будут требования на работе. Сами алгоритмы от этого не изменятся, поэтому стоит не просто заучивать их код наизусть, а так же понять принцип их работы. Однако, это не означает, что на изучение языка стоит забить. Он является частью нашего курса, и Вы его будете использовать на протяжении как минимум года.

Подготовка к работе

Для работы вам понадобится установить интерпретатор Python 3 на ваш компьютер. Для удобства написания кода, дебага и тд вам понадобится удобная среда разработки.

Интерпретатор Python

Чистый интрепретатор (без дополнительный модулей) можно скачать с оф. сайта. На UNIX подобных системах чистый интерпретатор устанавливается через пакетный менеджер. Например для Ubuntu и его производных: sudo apt install python3
Anaconda - интерпретатор с предустановленным набором библиотек.

IDE (среда разработки)

Visual Studio Code
PyCharm. Есть как платная (Professional), так и бесплатная (Community) версии. Можно получить студенческую лицензию от JetBrains.
Spyder
Visual Studio. В личном кабинете на mipt.ru есть инструкция о том, как получить лицензионное ПО от Microsoft. Обычно VS используется для программирования на C++ и C#, но он поддерживает и Python (возможно потребуется установка дополнительных модулей).

Полезные ссылки

  1. E-maxx - отличный онлайн сборник алгоритмов.
  2. Онлайн курс по Python. Курс от Mail.ru и МФТИ. Доступ к просмотру видео, вроде, является бесплатным. В курсе довольно хорошо рассказываются основы языка + примеры. Для тех, кому интересно, дальше освещаются темы, которые в нашем курсе не затрагиваются.
  3. Документация по Python3 - тут есть вся информация о встроенных функциях и стандартных библиотеках. Кроме этого там можно найти хороший туториал.
  4. PEP8 - общепринятый стандарт по написанию кода на языке Python. Короткая версия.
  5. Дискретная оптимизация - неплохой учебник, в котором часть темы по временной сложности и около того. Кроме этого, там есть материалы по теории графов и не только.
  6. Викиконспекты - материалы программированию и алгоритмам университета ИТМО.

Теория по алгоритмам

Большая часть теории основана на материалах E-maxx, Викиконспектов, которые в свою очередь основываются на материалах книги авторства Томаса Кормена и др. Алгоритмы: Построение и анализ.

  1. Временная сложность (пока только на англ., материал на русском смотрите в учебнике по дискретной оптимизации)
  2. Теория чисел
    1. Алгоритм Евклида
    2. Решето Эратосфена
    3. Расширенный алгоритм Евклида
  3. Сортировки и поиск
    1. Квадратичные сортировки
    2. Сортировки с квазилинейной сложностью
    3. Сортировки для особых случаев
    4. Поиск элементов в массиве
  4. Алгоритмы на строки
    1. Префикс-функция
    2. Z-функция
    3. Разбор выражений
  5. Динамическое программирование. Так же почитать можно тут.
  6. Хеширование
  7. Графы
    1. Хранение графов
    2. Обходы
    3. Пути минимального веса
    4. Остовные деревья
    5. Асимптотически сложные задачи
  8. Теория игр
  9. Структуры данных
    1. Связные списки
    2. Куча
    3. Система непересекающихся множеств
    4. Двоичные деревья поиска

Algorithms theory

Theese articles mostly based on E-maxx, neerc.ifmo.ru, which are based on Thomas Korman's book Introduction to ALgorithms.

  1. Time complexity
  2. Number theory
    1. Euclidean algorithm
    2. Sieve of Eratosthenes
    3. Extended Euclidean algorithm
  3. Sortings and searches
    1. Quadratic
    2. Quasilinear
    3. Sortings for special cases
    4. Elements search in array
  4. String algorithms
    1. Prefix function
    2. Z function
    3. Tokenization
  5. Dynamic programming
  6. Hashing
  7. Graphs theory
    1. Storage in memory
    2. Traverse
    3. Shortest paths
    4. Minimum spanning trees
    5. Асимптотически сложные задачи
  8. Game theory
  9. Data structures
    1. Linked lists
    2. Heap
    3. Disjoint set union
    4. Binary search trees

Контакты со мной

Абрамов Максим Петрович
+7(929)574-91-51
Telegram: @stiimo
maksim.abramov@phystech.edu
https://vk.com/stiimo

About

Информационная страница по курсу

Resources

License

Stars

Watchers

Forks

Packages

No packages published
0