Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Math: algorithm, complexity

Какие алгоритмы приходилось реализовывать на практике или изучать?

Вопрос проверяет общий алгоритмический кругозор и способность выбирать подходящий метод под задачу, а не просто “знать названия”.

Короткий ответ

Обычно в backend чаще встречаются не “олимпиадные” алгоритмы, а прикладные: хеш-таблицы, сортировки, поиск, очереди, кучи, скользящее окно и простые графовые обходы. Важно уметь объяснить, зачем выбран алгоритм и какова его сложность по времени и памяти. Также ценится понимание компромиссов: предрасчёт vs вычисление на лету, точность vs скорость, память vs latency. Если вы что-то применяли в проде, лучше привести короткий пример задачи и почему алгоритм подошёл.

Длинный ответ

Как правильно отвечать на такой вопрос

Обычно ожидают не список из 50 пунктов, а 5-10 типовых вещей плюс 1-2 истории применения. Важно показать, что вы понимаете “класс алгоритма” и его пользу.

1) Часто встречается в backend

  1. Поиск и работа с коллекциями

  • бинарный поиск

  • сортировка (и критерии выбора)

  • дедупликация по ключу

  1. Структуры данных

  • map как хеш-таблица (поиск за O(1) в среднем)

  • heap/priority queue (очередь с приоритетом)

  • deque/queue для потоковой обработки

  1. Потоковые приёмы

  • “скользящее окно” для метрик по интервалам

  • rate limiting (token bucket / leaky bucket)

  • подсчёты частот (frequency map)

  1. Простые графовые вещи

  • BFS/DFS для зависимостей или связей

  • топологическая сортировка (если есть DAG: зависимости задач)

2) Что иногда встречается “поглубже”

  • консистентное хеширование (распределение по шардам)

  • bloom filter (быстрая проверка “точно нет”)

  • выборка top-K (heap вместо полной сортировки)

Определение: Top-K — выбрать K лучших элементов без полной сортировки всего массива.

3) Пример маленького практического кейса (как отвечать)

Сценарий:

  • “Нужно быстро показывать top-100 самых популярных объектов за час”
    Подход:

  • агрегируем счётчики по ключу

  • храним top-K через heap или ZSET в Redis (если инфраструктура есть)
    Плюс:

  • быстро, предсказуемо, можно обновлять инкрементально

Вывод

Ожидаются прикладные алгоритмы и понимание компромиссов: что ускоряет чтение, что уменьшает память, что стабилизирует latency. Лучший ответ — 5-10 типовых классов + 1-2 реальных применения.

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    5

  • Сложность:

    5

Навыки

  • Math

    Math

Ключевые слова

#algorithm

#complexity

Подпишись на Golang Developer в телеграм

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.