Изучаем алгоритмы: полезные книги, веб-сайты, онлайн-курсы и видеоматериалы

МЕНЮ


Искусственный интеллект
Поиск
Регистрация на сайте
Помощь проекту

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


В этой подборке представлен список книг, веб-сайтов и онлайн-курсов, дающих понимание как простых, так и продвинутых алгоритмов.

Воодушевленный awesome-awesomeness и некоторыми другими шикарными библиотеками, я написал список лучших, на мой взгляд, источников для изучения и практики знаний алгоритмов. Если вы хотите поспособствовать развитию списка, пожалуйста, прочтите Гайд по развитию списка.

Веб-сайты

Веб-сайты, которые вам стоит использовать, чтоб выучить классические алгоритмы:

  • — Интерактивная визуализация показывает, как работает алгоритм поиска в глубину графа.
  • — Поучительное и анимированное описание алгоритмов.
  • — Тонны анимированых алгоритмов (с кодом, конечно же), можно также создавать свои алгоритмы.
  • — Коротенькая статья, посвящённая визуализации алгоритмов.
  • — Сложности повседневных алгоритмов, используемых в анализе данных.
  • — Визуализируйте поведение структур данных и делайте операции с ними.
  • — Много-много хорошо объяснённых и реализованных алгоритмов.
  • — Хрестоматия по программированию, цель которой — показать использование множества алгоритмов и структур данных в разных языках программирования.
  • — Красивые и простые анимации алгоритмов сортировки, не без коротеньких примеров с кодом и их обсуждений.
  • — Некоторые алгоритмы, которые очень понятно объяснены.
  • — Визуализация структур данных и алгоритмов посредством анимации.
  • — Ко-неч-но-же!
  • — А почему бы и нет?

Онлайн-курсы

Бесплатные и качественные курсы онлайн:

  • — Основные темы: асимптотика («Большое О(х)»), сортировка и поиск, разделяй и властвуй, а также другие разные алгоритмы.
  • — Основные темы: структуры данных, графы и их применения.
  • — Основные темы: жадные алгоритмы и динамическое программирование.
  • — Основные темы: кратчайший путь, NP-полные задачи и что это все значит для разработчика.
  • — Этот курс затрагивает необходимую информацию об алгоритмах и структурах данных, в которой нуждается каждый программист, который серьезно относится к своему делу. Курс рассказывает о структурах данных, сортировке и алгоритмах поиска.
  • — Вторая часть курса, которая сфокусирована на жадном алгоритме и динамических парадигмах, а также на NP-полных задачах.
  • — курс по алгоритмам, созданный Томасом Корменом и Девином Балккомом.
  • — Хорошо описанные алгоритмы.
  • — Такой же курс, как и предыдущий, только с другими алгоритмами.
  • — Простое и понятное введение в алгоритмы.
  • — Курс по алгоритмам на Python.

Книги

Самые популярные книги для изучения алгоритмов:

Англоязычные:

  • — Раскрывает суть решения задач, встречающихся в жизни.
  • — Решения задач на Java, описание хороших практик ООП и бесплатные онлайн-курсы.
  • — Примеры использования структур данных.
  • — Потрясающая книга об алгоритмах и структурах данных.
  • — Книга об алгоритмах и их практических применениях с множеством иллюстраций.
  • — Необходима к прочтению!
  • — Практическое руководство по теории и коду.
  • — Книгу легко читать, и она полна примеров из жизни.
  • — Просто хорошая книга.

Русскоязычные:

Новичку

  • — Исчерпывающее толкование структур данных и алгоритмов сортировки, поиска, обработки графов и строк, включая пятьдесят алгоритмов, которые должен знать каждый программист.
  • — Книга предназначена для всех, кого интересуют вопросы, связанные с компьютерными алгоритмами, но отсутствие времени не позволяют взяться за серьезный труд.
  • — Отличная книга для тех, кому не терпится познать такой раздел математики, как Теория графов.
  • — Основополагающее введение в дискретную математику, без знания которой невозможно успешно заниматься информатикой и программированием.
  • — Пособие написано по материалам вводного лекционного курса математико-механического факультета Санкт-Петербургского государственного университета.
  • — В этом учебнике изложены все основные разделы дискретной математики и описаны важнейшие алгоритмы на дискретных структурах данных.
  • — Изложение в книге идёт от простого (что такое алгоритм, как оценить его производительность) к сложному (деревья, графы) с живыми примерами и кодом.
  • — В этой книге подробно разбираются основные методы построения и анализа эффективных алгоритмов.
  • — Помимо простых и ясных примеров, автор приводит небольшую демонстрационную программу, которую можно запустить в веб-браузере.
  • — Особое внимание уделено алгоритмам параллельной обработки, редко освещаемым в литературе на русском языке.
  • — Книга содержит задачи (с решениями) по программированию различной трудности.
  • — Из этой книги вы узнаете, где алгоритмы применяются и как их анализировать, чтобы понять их поведение.
  • — Основной предполагаемый читатель этой книги — молодой человек, раздумывающий, стоит ли ему заниматься этой областью человеческой деятельности или нет.

Знающему основы для углубленного изучения

  • — В этой книге автор делится с читателями разнообразными приёмами из своей коллекции в области прикладного и системного программирования.
  • — В книге рассматривается автоматное программирование — подход к разработке программных систем со сложным поведением, основанный на модели автоматизированного объекта управления
  • — Книга содержит описание и анализ основных алгоритмов, методов построения программ.
  • — В классическом учебнике тьюринговского лауреата аккуратно, на тщательно подобранных примерах прорабатываются основные темы алгоритмики — сортировка и поиск, рекурсия, динамические структуры данных.
  • — Книга известных американских ученых посвящена теории автоматов и соответствующих формальных языков и грамматик.

Профессионалу

  • — Книга посвящена обсуждению сложных вопросов программирования., каких как реализация разреженных массивов, алгоритмы шифрования и сжатия данных, а также проблемы разработки собственных языков программирования и написания интерпретаторов для них.
  • — Эта книга была признана одной из двенадцати лучших физико-математических монографий столетия.
  • — Книга удачно объединяет в себе полноту охвата и строгость изложения материала.
  • — Огромный список разнообразных алгоритмов по математике, графике, кодированию, сортировкам, структурам данных, нервным сетям и многому другому.

Github библиотеки

Реализация большинства классических алгоритмов во многих языках программирования

C

CoffeeScript

C#

C++

Erlang

Go

Java

JavaScript

Objective-C

Python

Ruby

Scala

Swift

Языково-независимые

Онлайн-практика алгоритмов

Онлайн-практика для того, чтоб оттачивать свои навыки:

  • — Сотни задач с предыдущих региональных состязаний ACM-ICPC и мировых состязаний World Finals.
  • — Японская онлайн практика.
  • — Больше задач и ежемесячные состязания.
  • — Единственный сайт, где можно посостязаться в знаниях платформы Web 2.0.
  • — Веб-сайт, который предлагает задачи по алгоритмам на многих языках и для многих уровней сложности.
  • — Скромный веб-сайт с задачами на оттачивание алгоритмов для начального и продвинутого уровней. Поддерживает множество популярных языков программирования, таких как С++, Python, JavaScript, Ruby и так далее.
  • — Решайте задачи, используя алгоритмы и принимайте участие в решении задач, которые задают при приёме на работу.
  • — Онлайн практика по известным алгоритмам и функциональном программировании.
  • — Румынская онлайн-практика. 1500+ задач по алгоритмам.
  • — Корейская онлайн-практика(около половины на английском) 1300+ задач.
  • — Учитесь и практикуйтесь в написании алгоритмов, решая задачи онлайн.
  • — Выучите алгоритмы и подготовьтесь к интервью.
  • — Китайская онлайн-практика.
  • — Математические задачи, которые могут быть решены с использованием алгоритмов (или даже с помощью карандаша, зависит от того, сколько вы уже знаете).
  • — Платформа для изучения биоинформатики и программирования, решая задачи.
  • — Онлайн практика и состязания с множеством задач по алгоритмам.
  • — Вводный курс по Python с 100+ задачами по алгоритмам и отладке (российский).
  • — Еще больше задач.
  • — Множество задач по графическому дизайну, анализу данных и разработки в целом.
  • — Бразильская онлайн-практика. Не так много задач по сравнению с конкурентами, но их база растет, а также у них есть онлайн-состязания.
  • — Ещё много задач с предыдущих региональных состязаний ACM-ICPC и мировых состязаний World Finals.

Видеоматериалы:

  • — Видеоуроки по алгоритмам, материал которых будет понятен новичкам.
  • — Видеоуроки по структурам данных, материал которых будет понятен новичкам.
  • — Серия видеоуроков, посвященная продвинутым алгоритмам и структурам данных.
  • — Ну и продолжение первых двух частей лекций по уже более сложным алгоритмам и структурам данных.
  • — Цель курса — ознакомить слушателей с основными алгоритмами, применяемыми для разработки программного обеспечения.
  • — Серия видеоуроков, которая посвящена введению новичков в основы алгоритмов
  • — Реализация самых распространённых алгоритмов на С++
  • — Подборка видеоуроков об алгоритмах и структурах данных от Computer Science Center
  • — Широкий обзор разделов биоинформатики с упором на методы чтения генома, а также на алгоритмы сравнения строк и алгоритмы неточного поиска подпоследовательностей в больших текстах.

Инструменты

Некоторые инструменты, которые помогут вам в освоении алгоритмов

  • — Иструмент, помогающий вам создавать диаграммы и схемы, которые могут моделировать алгоритмы.
  • — Интерактивные задачки по алгоритмам и структурам данных.


Источник: proglib.io

Комментарии: