Алгоритмы — всё по этой теме для программистов

Картинка поста

Однажды на Reddit засветился интересный пост, написанный Джорджем Дворским под названием «10 алгоритмов, которые правят миром» (статья на русском языке). В нём автор попытался объяснить важность алгоритмов в наши дни и составил список...
Читать дальше

Картинка поста

Нам пришел вопрос от подписчика Tproger, которым мы хотим поделиться с вами: Мы обратились за разъяснением к нашим экспертам, а полученные ответы предоставляем вашему вниманию. Я не рекомендую сразу углубляться...
Читать дальше

Картинка поста

Первый алгоритм появился ещё при мамонтах, когда люди разрабатывали план нападения. Для программиста знания алгоритмов — неотъемлемая часть его работы. Предлагаем вам пройти тест и узнать, насколько хорошо вы знаете...
Читать дальше

Картинка поста

Если вам нужно создать словарь, вероятно, вы уже задумывались над выбором структуры данных для хранения слов. Ваш выбор должен зависеть от задач, которые призвана решить эта структура. Хеш-таблица Если вы...
Читать дальше

Курс «Введение в алгоритмы»

Картинка поста

Русскоязычный базовый курс от Hexlet, посвященный алгоритмам и структурам данных. В курсе рассматриваются сложность алгоритмов, а также сортировка и графы. Курс записан в 2015 году, лектор — Рахим Давлеткалиев....
Читать дальше

Курс «Алгоритмы и структуры данных»

Картинка поста

Русскоязычный курс проекта «Техносфера Mail.Ru Group», представляющий собой введение в основы алгоритмов и структур данных. Цель курса — познакомить слушателей с основными алгоритмами, применяемыми для разработки программного обеспечения, научить выбирать подходящие структуры данных...
Читать дальше

Картинка поста

Алгоритмы сортировки упорядочивают элементы по определённому критерию. В день появления первых компьютерных вычислений появился и повод для споров между исследователями. Причиной разногласий послужил поиск эффективных способов решения не только для...
Читать дальше

Картинка поста

Тема искусственного интеллекта стала особенно популярной в последние годы. Умные машины научились блефовать, обыгрывать профессиональных игроков в настольные игры, делать переводы и распознавать человеческий голос. Каждую неделю мы узнаем о всё...
Читать дальше

Курс «Введение в алгоритмы»

Картинка поста

Прочитанный программистом и преподавателем в международном ИТ-университете Рахимом Давлеткалиевым русскоязычный курс, в котором разбираются различные вопросы, связанные с алгоритмами. Первые несколько видео будут особенно полезны новичкам, а последние две части...
Читать дальше

Картинка поста

Программисты — ленивые существа с тонкой душевной организацией, что помогает нам находить простые и красивые решения задач с минимальными затратами. В этой статье мы создадим реалистичный ландшафт с помощью алгоритма «diamond-square». Мы не будем долго прорисовывать вручную каменистый рельеф, который...
Читать дальше

Картинка поста

Вполне возможно, что после сотен партий в «крестики-нолики» вы задумывались: каков же оптимальный алгоритм? Но если вы здесь, то вы наверняка ещё и пробовали написать реализацию этой игры. Мы пойдём дальше и напишем бота, который будет невозможно обыграть в «крестики-нолики». Предугадав...
Читать дальше


Картинка поста

В последнее время все чаще и чаще выходят различные курсы по программированию. И очень часто получается так, что курс, на который вы записались, оказывается очень сомнительного качества. Поэтому мы решили...
Читать дальше

Картинка поста

Технокубок — это олимпиада по программированию, организованная Mail.Ru Group, МГТУ им. Н. Э. Баумана и МФТИ для учеников 8-11 классов, а также потенциальная возможность попасть в лучшие технические вузы благодаря...
Читать дальше

Картинка поста

Задача: посчитать N-е число последовательности, в которой каждый элемент равен сумме двух предыдущих. Такая последовательность называется последовательностью Фибоначчи: 1, 1, 2, 3, 5, 8…...
Читать дальше

Картинка поста

Вам когда-нибудь приходилось гарантировать корректность выполнения своей программы? На самом деле это большой объем работы, который не всегда возможно выполнить. В самих доказательствах могут быть ошибки, об этом говорится и...
Читать дальше

Картинка поста

Лабиринты — это не только самостоятельный класс игр, но и основа для создания локаций в играх других жанров: например, систем пещер, которые, в свою очередь, могут быть использованы в очень широком...
Читать дальше

Картинка поста

Рассказывает Куртис МакЭнроэ  Недавно после длительного времени, проведенного без сна, я задумался над тем, как можно узнать количество дней в месяце, зная его номер. Существуют детские стишки на эту тему,...
Читать дальше

Картинка поста

Чтобы быть хорошим программистом, мало знать синтаксис какого-нибудь языка и хорошо писать код. Когда речь идет о маленьких шаблонных проектах, этого хватит. Но вот вы сталкиваетесь с чем-то по-настоящему серьезным и масштабным, и становится ясно — без знания...
Читать дальше

Картинка поста

Для новичков Граф — это (упрощенно) множество точек, называемых вершинами, соединенных какими-то линиями, называемыми рёбрами (необязательно все вершины соединены). Можно представлять себе как города, соединенные дорогами. Любое клетчатое поле можно...
Читать дальше

Классическая задача. Найдите в данной вам строке максимальную по длине подстроку, которая является палиндромом (то есть читается слева направо и справа налево одинаково). Предложите как можно более эффективный алгоритм....
Читать дальше

Картинка поста

Знание алгоритмов и структур данных — вот один из ключевых навыков программиста. Промышленные разработчики могут ограничиться и базой: стеки, очереди, хеш-таблицы, алгоритмы сортировки, поиск в глубину и т.д. Но в...
Читать дальше

Картинка поста

Задача, которую давали на собеседованиях в Apple. Представьте, что вы получили работу кассира в магазине. Ваш босс случайно выяснил, что вы обладаете навыками программиста, и захотел, чтобы вы помогли ему написать...
Читать дальше

Картинка поста

В данном списке содержится 1584 ссылки: книги, статьи, туториалы, онлайн-курсы, интерактивные обучалки, подкасты — всё только бесплатное. Английский язык считается стандартным, для русскоязычного контента используется отдельная метка. База постоянно пополняется,...
Читать дальше


Код, который работает с числами с плавающей точкой, может выглядеть вполне правильным, но тем не менее производить некорректные вычисления из-за ошибок округления. Вашингтонский университет предлагает решение — Herbie — инструмент...
Читать дальше

Картинка поста

При приеме сотрудника в офис на должность программиста, работодатель испытывает кандидата не только вопросами о навыках, но и всевозможными логическими задачами, IT-кейсами и заданиями по разработке для профессиональных программистов. Как...
Читать дальше

Картинка поста

Возможности человеческого разума ограничены […] Наша сила — в использовании технологий, которые многократно увеличивают наши когнитивные способности — Дональд Норман Алгоритмы — это отличная область применения визуализации. Для визуализации работы алгоритма не нужны...
Читать дальше

Картинка поста

В этой части мы посмотрим на пять основных алгоритмов сортировки данных в массиве. Начнем с самого простого — сортировки пузырьком — и закончим «быстрой сортировкой» (quicksort). Для каждого алгоритма, кроме...
Читать дальше

Картинка поста

Множество — это коллекция, которая реализует основные математические операции над множествами: пересечения (intersection), объединение (union), разность (difference) и симметрическая разность (symmetric difference). Каждый из алгоритмов мы разберем в соответствующем разделе....
Читать дальше

Картинка поста

До сих пор мы рассматривали структуры данных, данные в которых располагаются линейно. В связном списке — от первого узла к единственному последнему. В динамическом массиве — в виде непрерывного блока. В этой...
Читать дальше

Картинка поста

В предыдущих частях мы рассматривали базовые структуры данных, которые, по сути, являлись надстройками над массивом. В этой статье мы добавим к коллекциям простые операции и посмотрим, как это повлияет на...
Читать дальше

Картинка поста

Иногда от коллекции требуется неограниченная вместимость и простота использования списка, но при этом константное время доступа к произвольному элементу, как в массиве. В этом случае используется список на основе массива...
Читать дальше

Картинка поста

Ученые Массачусетского технологического университета на днях изобрели алгоритм, способный убирать препятствия (вроде заборов и окон) с фотографий. На вход он принимает некоторое количество фотографий, снятых с небольшим смещением относительно друг...
Читать дальше

Обучающие статьи о Computer Science, оптимизации кода и использование классических алгоритмов в решении задач