Для удобства учеников JavaRush мы решили собрать лекции и статьи о самых важных темах в программировании.
Третья подборка — об алгоритмах. В мини-гайде мы кратко излагаем суть статей, а если перейти по ссылке — можно подробнее ознакомиться с интересующей темой. Добавляйте подборку в закладки и возвращайтесь к ней, когда потребуется.
Материалы об алгоритмах
Статьи и лекции
В гарвардском курсе
"CS50. Основы программирования" разбираются базовые знания, которыми должен владеть разработчик. В этой лекции рассказывается о таком алгоритме, как сортировка слиянием. Этот алгоритм — рекурсивный, он разбивает одну большую задачу сортировки на подзадачи, выполнение которых делают его ближе к решению изначальной большой задачи. Эта лекция есть и в текстовом, и в видео форматах.
Следующая лекция из гарвардского курса "CS50. Основы программирования" рассказывает о сортировке выбором. На примере сортировки массива чисел в лекции разбирают этот алгоритм сортировки. Как и в предыдущей лекции, вы можете прочитать ее, или посмотреть видео, в зависимости от того, как вам легче усваивать информацию.
Очередная лекция из гарвардского курса, переведенного JavaRush на русский. Основная идея этого алгоритма (сортировки вставками) — разделение массива на две части, отсортированную и неотсортированную. На каждом шаге алгоритма число переходит от неотсортированной к отсортированной части.
Лектор на простых примерах разбирает, как работает алгоритм пузырьковая сортировка. Этот алгоритм — очень понятный и самый простой в реализации. Поэтому новички его очень любят. Читайте лекцию и смотрите видео, чтобы изучить сортировку пузырьком.
Сортировка элементов — одна из категорий алгоритмов, к которым разработчик должен привыкнуть. В этой статье автор разбирает алгоритмы сортировки: простейшую сортировку, сортировку выбором, сортировку вставками, челночную сортировку, сортировку Шелла и другие. Приложенный к статье материал позволит вам узнать еще больше, так как это обзорная статья. И цель ее — дать небольшое вступление.
Это перевод статьи об алгоритмах для написания кода. Автор перевода предполагает, что статью прочитают люди, которые уже знают основы языка и хотят немного расширить свои знания алгоритмики. Общие подходы к решению представленных ниже задач включают в себя: сортировку, бинарный поиск, хэш-таблицы,
хипы, деревья,
поиск в глубину,
динамическое программирование.
Вводная статья об алгоритмах. Пошагово на примере задачи, которую необходимо решить, в тексте разбирают алгоритмы и как ими пользоваться. В конце лекции есть список полезных источников с информацией об алгоритмах.
Алгоритмы в “вопросах и ответах на собеседованиях”
Различные виды алгоритмов используются в проектах чаще, чем это может показаться. К примеру, нужно отсортировать некоторые данные по тем или иным параметрам (колонкам), чтобы мы могли без особых усилий перемещаться по ним. Поэтому собеседованиях при приеме на работу могут спросить о том или ином базовом алгоритме, и возможно, дать задание реализовать его при помощи кода.
В этой статье можно ознакомиться с некоторыми базовыми алгоритмами и с конкретными примерами их реализации на Java.
В предыдущей статье автор рассказывал о различных алгоритмах сортировки массивов и так называемом жадном алгоритме.В этой статье идет речь о графах и алгоритмах, связанных с ними.
Бонус
Очень подробный обзор книги "Грокаем алгоритмы" Адитья Бхаргава. Автор поэтапно рассматривает каждый раздел книги: доступно ли подана тема, хватает ли поданной информации. Читайте рецензию и решайте, стоит ли покупать книгу об алгоритмах.
Эта книга посвящена изучению и использованию структур данных и алгоритмов в программировании. Она расскажет, каким образом структуры данных определяют способ организации данных в памяти, а также как алгоритмы обеспечивают выполнение различных операций с этими структурами.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ