Гид по технологиям

Алгоритмы

Рекурсивный линейный поиск — примеры на C++/Python/JS/C
Алгоритмы 4 min read

Рекурсивный линейный поиск — примеры на C++/Python/JS/C

Рекурсивный вариант линейного поиска проходит массив слева и справа одновременно, сравнивая элементы на границах и рекурсивно сужая область поиска. Это простая техника для задач на рекурсию, но при больших массивах может привести к переполнению стека; для практики используйте её в тестовых и учебных задачах.

Подсчитать вхождения символа в строке
Алгоритмы 3 min read

Подсчитать вхождения символа в строке

Простой и надёжный способ — пройти строку посимвольно и увеличивать счётчик при совпадении. В статье есть понятный алгоритм, примеры на C++, Python и JavaScript, разбор краевых случаев и чеклист для собеседования.

Среднее массива: примеры на Python, C++, JS и C
Алгоритмы 3 min read

Среднее массива: примеры на Python, C++, JS и C

Среднее массива — это сумма элементов, делённая на их количество. В статье есть примеры на Python, C++, JavaScript и C, а также советы по обработке пустых массивов, переполнений и устойчивым онлайн‑методам.

Удаление дубликатов в массивах — примеры и код
Алгоритмы 6 min read

Удаление дубликатов в массивах — примеры и код

В зависимости от сортировки массива выбирайте метод: хеш-таблица для неотсортированного массива (O(n) времени, O(n) памяти) или два индекса для отсортированного массива (O(n) времени, O(1) памяти). Примеры на C++, Python и JavaScript приведены.

Наиболее частый символ в строке — как найти
Алгоритмы 5 min read

Наиболее частый символ в строке — как найти

В статье показано простое и эффективное решение задачи: подсчитать частоту символов с помощью фиксированного массива/хэша за O(n). Приведены реализации на C++, Python, C и JavaScript, разбор крайних случаев и рекомендации по работе с Unicode и регистром.

Переворот массива: итеративно и рекурсивно
Алгоритмы 5 min read

Переворот массива: итеративно и рекурсивно

В статье показаны два простых способа развернуть массив — итеративный (двойной указатель и обмен) и рекурсивный (обмен + рекурсивный вызов). Приведены готовые примеры на C++, Python и JavaScript, пояснения по сложности, типичные ошибки и чек‑лист для собеседований.

Проверка строки на палиндром — алгоритм и примеры
Алгоритмы 4 min read

Проверка строки на палиндром — алгоритм и примеры

Палиндром — строка, совпадающая со своей перевёрнутой версией. Используйте двухуказательный алгоритм для O(n) времени и O(1) памяти; учитывайте нормализацию и локаль для Unicode.

НОД и НОК двух чисел — объяснение и примеры
Алгоритмы 4 min read

НОД и НОК двух чисел — объяснение и примеры

В статье объяснены понятия НОД и НОК, приведён Евклидов алгоритм и формула связи НОК и НОД. Даны реализации на C++, C, Python и JavaScript, рекомендации по краевым случаям и тесты.

Обход бинарного дерева: inorder, preorder, postorder
Алгоритмы 6 min read

Обход бинарного дерева: inorder, preorder, postorder

Inorder возвращает элементы BST в порядке возрастания, preorder удобен для копирования, postorder — для удаления. Все обходы за O(n) времени и O(h) памяти рекурсивно.

Факториал через рекурсию — объяснение и примеры
Алгоритмы 6 min read

Факториал через рекурсию — объяснение и примеры

Факториал n — произведение от 1 до n. Рекурсивная формула: n! = n × (n−1)!, базовый случай 0! = 1. В статье есть код на C, Java и Python, а также итеративные альтернативы и критерии приёмки.

Произведение элементов массива — итеративно и рекурсивно
Алгоритмы 3 min read

Произведение элементов массива — итеративно и рекурсивно

Показываю, как найти произведение всех элементов массива итеративно и рекурсивно с примерами на C++, Python, JavaScript и C. Обсуждаются крайние случаи, сложность и варианты быстрого решения.

Перестановки строки: примеры на C++, Python, JS, C
Алгоритмы 4 min read

Перестановки строки: примеры на C++, Python, JS, C

Перестановка — это упорядоченное расположение символов. Примеры на C++, Python, JavaScript и C показывают рекурсивный обмен символов. Для практики используйте next_permutation или itertools, а при больших n избегайте полного перебора.

Сумма первых n натуральных чисел рекурсией
Алгоритмы 4 min read

Сумма первых n натуральных чисел рекурсией

Кратко: существует простой рекурсивный приём, который вычисляет сумму первых n натуральных чисел через формулу S(n)=n+S(n-1) с базовым случаем n<=1. Для практики показаны реализации на C++, Python, C, JavaScript и Java. Для больших n итеративная формула n*(n+1)/2 проще и безопаснее по стеку.

Сортировка выбором — объяснение и примеры
Алгоритмы 5 min read

Сортировка выбором — объяснение и примеры

Сортировка выбором выбирает максимум/минимум и меняет его местами, работает in-place и имеет сложность O(n²). Хороша для обучения и небольших массивов; для больших данных используйте O(n log n) алгоритмы.

Сумма элементов массива — C++, Python, JavaScript
Алгоритмы 4 min read

Сумма элементов массива — C++, Python, JavaScript

Показываю простые и надёжные способы вычислить сумму элементов массива на C++, Python и JavaScript. Разбираю базовый алгоритм, варианты с библиотеками, возможные проблемы и оптимизации.

Как проверить, симметрична ли строка
Алгоритмы 4 min read

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

Симметричная строка — та, у которой левая и правая половины совпадают. В статье объяснён простой алгоритм с двумя указателями и приведены реализации на C++, Python и JavaScript, а также альтернативные подходы, тесты и критерии приёмки.

Наибольшая и наименьшая цифра числа — примеры
Алгоритмы 4 min read

Наибольшая и наименьшая цифра числа — примеры

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

nCr: вычисление сочетаний в Python, C++, JS, C и Java
Алгоритмы 4 min read

nCr: вычисление сочетаний в Python, C++, JS, C и Java

Сочетание (nCr) — количество способов выбрать r элементов из n без учёта порядка. Формула nCr = n!/(r!(n-r)!) и реализации на Python, C++, JS, C, Java. Рекомендуется использовать мультипликативную формулу или стандартные библиотеки для больших n.

nPr — перестановки: формула и примеры
Алгоритмы 4 min read

nPr — перестановки: формула и примеры

Перестановка (nPr) — число упорядоченных расположений r элементов из n. Формула nPr = n!/(n-r)!; на практике выгодно вычислять произведение n*(n-1)*...*(n-r+1) или использовать большие типы, чтобы избежать переполнения.

Транспонирование матриц на C++, Python, JavaScript и C
Алгоритмы 4 min read

Транспонирование матриц на C++, Python, JavaScript и C

Транспонирование матрицы — это обмен строк и столбцов: элемент (i, j) становится (j, i). В статье приведены примеры на C++, Python, JavaScript и C, советы по in‑place и тесты.