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

Алгоритмы

Произведение элементов массива — итеративно и рекурсивно
Алгоритмы 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 и тесты.

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

Проверка идентичности матриц в C++, Python, JS и C

TL;DR: Чтобы проверить, идентичны ли две матрицы, сначала сравните их размеры, затем элементы по индексам в двух вложенных циклах. В статье — рабочие примеры на C++, Python, JavaScript и C, сложность O(rows·cols), тест-кейсы и советы по крайним случаям.

Как найти делители числа в C++, Python, JavaScript
Алгоритмы 4 min read

Как найти делители числа в C++, Python, JavaScript

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

Количество полных квадратов между числами
Алгоритмы 4 min read

Количество полных квадратов между числами

Если нужно быстро посчитать полные квадраты в диапазоне, используйте формулу floor(sqrt(num2)) - ceil(sqrt(num1)) + 1; учтите отрицательные границы и возможные погрешности sqrt.

n-значные квадраты и кубы: C++, Python, JS
Алгоритмы 5 min read

n-значные квадраты и кубы: C++, Python, JS

В этой статье показано, как найти наименьшее и наибольшее n-значное совершенное квадратное и кубическое число. Приведены формулы, готовые программы на C++, Python и JavaScript, примеры вывода и набор тестов/критериев приёмки.

Сумма арифметической прогрессии — формула и примеры
Алгоритмы 4 min read

Сумма арифметической прогрессии — формула и примеры

Арифметическую прогрессию можно суммировать итеративно (O(n)) или формулой S = n/2*(2a+(n-1)d) (O(1)). Проверьте входные данные и учтите переполнение.

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

Проверка, является ли строка палиндромом

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

Итеративный бинарный поиск на C, C++ и Python
Алгоритмы 6 min read

Итеративный бинарный поиск на C, C++ и Python

Итеративный бинарный поиск быстро находит элемент в отсортированном массиве за O(log n) сравнений и использует O(1) памяти. В статье — примеры на C, C++ и Python, тесты, ошибки и альтернативы.

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

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

Для целого числа достаточно пройти по его цифрам и обновлять максимум и минимум. В языках C/C++/C/Java это удобно сделать через остаток и деление, а в Python и JavaScript можно также использовать строковый подход (преобразовать в str и применять max/min). Учитывайте нулевые и отрицательные числа.

Число Армстронга: алгоритм и примеры на C
Алгоритмы 5 min read

Число Армстронга: алгоритм и примеры на C

Число Армстронга — это число, равное сумме степеней своих цифр (для n‑значного числа степень = n). Приведены алгоритм, псевдокод и пример на C с тестовыми случаями и практическими замечаниями.

Рекурсивный линейный поиск массива
Алгоритмы 4 min read

Рекурсивный линейный поиск массива

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