Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
1-й уровень: вы хотите что-то понимать в алгоритмах. В этом случае вам поможет
учебная литература, и я бы рекомендовал книгу «Грокаем алгоритмы». В ней
понятно изложена суть без лишних деталей, много иллюстраций, а вся
необходимая математика объясняется по ходу. Если вы владеете английским, то
лучше читать английскую версию. А если не любите читать книги, то на Khan
Academy есть вводный курс для начинающих.
https://tproger.ru/experts/how-to-learn-algorithms/ 1/7
3/13/2020 Как лучше всего изучать алгоритмы
3-й уровень: хочу быть лучше. Если вы хотите лучше решать поставленные задачи,
то стоит четко определить, алгоритмы из какой области знаний нужно изучить.
Если очертить круг алгоритмов не удается — обратитесь за помощью к более
опытным коллегам. Они всегда подскажут с чего начать, подскажут с литературой
и курсами.
https://tproger.ru/experts/how-to-learn-algorithms/ 3/7
3/13/2020 Как лучше всего изучать алгоритмы
1. Блок-схемы
2. О-нотация («О» большое и «о» малое)
3. Псевдокод
Многие базовые вещи для тех, кто интересуется алгоритмами, неплохо описаны в
книге Томаса Кормена «Алгоритмы. Вводный курс». Эта книга рассказывает об
аспектах реализации алгоритмов в программировании. Для людей, которые лучше
воспринимают визуальную информацию, есть очень много иллюстраций работы
сортировок: в виде анимаций с примерами кода; в виде видео.
Считается, что правильнее всего учиться реализации сортировок на С, так как этот
язык наиболее близок в работе к памяти и не имеет множества прослоек между
своими структурами данных и памятью. Если же вы решитесь реализовывать
алгоритм на привычном вам языке, то есть риск того, что сложность алгоритма не
будет соответствовать реальному времени его работы и потреблению памяти.
https://tproger.ru/experts/how-to-learn-algorithms/ 4/7
3/13/2020 Как лучше всего изучать алгоритмы
Дейкстры,
– двоичного поиска (и двоичные деревья как инструмент),
– поиска в глубину и ширину.
Вообще, алгоритмов на тех же графах очень много, выбрать есть из чего. Самое
главное здесь – много практики и анализа полученных результатов, без которых
изучение алгоритмов будет просто галочкой для себя и работой в стол.
Книги по теме:
– Томас Х. Кормен «Алгоритмы. Вводный курс»
– Род Хаггарти «Дискретная математика для программистов»
– Фёдор Новиков «Дискретная математика для программистов»
– Стивен Скиена «Алгоритмы. Руководство по разработке»
– Роберт Седжвик «Фундаментальные алгоритмы на С++»
– Ричард Берд «Жемчужины проектирования алгоритмов»
После этого нужно набить руку и научиться применять эти знания. Довольно много
подходящих задач на HackerRank и других подобных ресурсах. Они разного уровня
сложности, начиная с самого базового, и затрагивают много разных тем. Что
важно — для их решения недостаточно знать какой-то базовый алгоритм, нужно
уметь приспособить его к конкретной ситуации, модифицировать, совместить с
другими подходами.
https://tproger.ru/experts/how-to-learn-algorithms/ 5/7
3/13/2020 Как лучше всего изучать алгоритмы
Если человек задался целью изучить алгоритмы, то, вероятно, он уже знает как
минимум один язык программирования. В таком случае, можно продолжить
изучение, прочитав книгу «Структуры данных и алгоритмы в Java» от Роберта
Лафоре. В ней более развернуто описаны примеры сортировок и структур данных.
Если у вас есть знания по дискретной математике, то можно сразу читать книгу
«Алгоритмы. Построение и анализ» Томаса Кормена и его друзей. По-хорошему, эту
книгу должен прочитать каждый, кто хочет изучить алгоритмы.
Если этого будет недостаточно, то можно собраться духом и прочитать все тома
«Искусства программирования» Дональда Кнута. А что делать дальше, думаю
каждый уже решит сам.
https://tproger.ru/experts/how-to-learn-algorithms/ 6/7
3/13/2020 Как лучше всего изучать алгоритмы
https://tproger.ru/experts/how-to-learn-algorithms/ 7/7