Алгоритмы и структуры данных на C#
В разделе разобраны классические алгоритмы и структуры данных: сортировки, методы поиска, списки, стеки, очереди, деревья, численные методы, шифры и системы счисления. Каждая статья даёт идею алгоритма, пошаговое объяснение, код на C# и оценку времени работы.
Хороший порядок такой: сначала сортировка и поиск, затем структуры данных, после этого численные методы и работа с числами в разных системах. Шифрование стоит оставить на конец, так как оно использует приёмы из предыдущих тем.
Очередь Queue<T> в C#: методы и примерыКак работает очередь Queue<T> в C#: принцип FIFO, методы Enqueue, Dequeue, Peek, TryDequeue, PriorityQueue и примеры с обходом графа в ширину.
Список List<T> в C#: полное руководствоКак создать List<T> в C#, добавлять, удалять, искать и сортировать элементы, чем он отличается от массива. Разбор Capacity и примеры кода.
Словарь Dictionary в C#: полное руководствоDictionary в C# с примерами: создание и инициализация, Add и TryAdd, TryGetValue, перебор, удаление, сложность и потокобезопасный ConcurrentDictionary.
Сортировка Шелла на C#: принцип работы и реализацияКак работает сортировка Шелла, как выбрать последовательность интервалов и реализовать алгоритм на C#. Разбор сложности, оптимизаций и области применения.
Сортировка с помощью бинарного дерева поиска в C#Как отсортировать данные с помощью бинарного дерева поиска в C#: создание дерева, вставка и удаление узлов, симметричный обход, плюсы и минусы метода.
QuickSort в C#: быстрая сортировка на практикеКак устроена быстрая сортировка QuickSort: функция разбиения, выбор опорного элемента, итеративная версия и практические советы по реализации на C#.
Реализация шифра Атбаш на C# с примерами кодаКак работает шифр Атбаш, как написать функцию шифрования и расшифровки на C#, проверить её тестами и какие вариации алгоритма можно сделать.
Метод деления отрезка пополам в C#: бисекцияКак найти корень уравнения методом бисекции на C#: условия применения, шаги алгоритма, реализация, контроль точности и типичные ошибки при расчётах.
Гномья сортировка на C#: алгоритм и реализацияКак работает гномья сортировка, чем она похожа на сортировку вставками и как реализовать её на C#. Разбор сложности, оптимизаций и случаев применения.
Как перевести десятичное число в двоичное на C#Как перевести число из десятичной системы счисления в двоичную в C#: через Convert.ToString, деление на два и побитовые операции, с готовыми примерами.
Численное интегрирование методом прямоугольников на C#Как вычислить определённый интеграл методом прямоугольников на C#: левые, правые и средние прямоугольники, реализация функции и повышение точности расчёта.
Сортировка подсчётом на C#: пошаговый разборКак работает сортировка подсчётом, когда она быстрее сравнительных алгоритмов и как написать её на C# шаг за шагом. Примеры кода, сложность и ограничения.
Реализация шифра Полибия на C# с примерами кодаКак работает шифр Полибия на основе квадрата 5x5, как зашифровать и расшифровать текст на C#. Полная реализация с примерами и разбором алгоритма.
Сортировка выбором на C#: принцип работы и кодКак работает сортировка выбором, как реализовать её на C# и какая у неё сложность. Пошаговый разбор алгоритма с примерами и сравнением с другими методами.
Как перевести троичное число в десятичное на C#Как перевести число из троичной системы счисления в десятичную в C#: формула разложения по степеням тройки, готовая функция и разбор частых ошибок.
Реализация шифра Виженера на языке C#Как реализовать шифр Виженера в C#: таблица сдвигов, повторение ключа, методы шифрования и расшифровки, обработка регистра и символов вне алфавита.
Десятичное число в троичную систему на C#Как перевести десятичное число в троичную систему в C#: алгоритм деления на 3 с остатком, код на цикле и рекурсии, проверка работы на примерах.
Эффективная шейкерная сортировка на C#Как устроена шейкерная сортировка в C#: двунаправленные проходы по массиву, реализация на коде, сравнение с пузырьком, сложность алгоритма и ускорение.
Последовательный поиск элементов в массиве на C#Как реализовать последовательный (линейный) поиск в массиве на C#: код цикла, возврат индекса, обработка отсутствующего элемента и оценка сложности.
Бинарный поиск на C# с примерамиКак работает бинарный поиск в C#: итеративная и рекурсивная версии, Array.BinarySearch, границы для дубликатов и частые ошибки.
Сортировка массива расчёской на C#Как работает сортировка расчёской в C#: уменьшающийся шаг сравнения, коэффициент 1,3, реализация на массиве, сложность и выигрыш по сравнению с пузырьком.
Стек в C#: основы, примеры и практикаКак работать со стеком в C#: класс Stack<T>, методы Push, Pop и Peek, собственная реализация на массиве, типичные задачи и рекомендации по применению.
Бинарные деревья в C#: код и разбор операцийКак реализовать бинарное дерево поиска на C#: вставка, поиск, удаление, обходы in-order и в ширину, высота, сложность и готовые SortedSet.
Алгоритм сортировки пузырьком на C#Как работает сортировка пузырьком в C#: пошаговый разбор, реализация на массиве, оптимизация с флагом обмена и оценка времени работы алгоритма.
Шифр Цезаря на C#: полное руководствоКак реализовать шифр Цезаря в C#: сдвиг букв по алфавиту, методы шифрования и расшифровки, учёт регистра и подбор ключа перебором, с готовым кодом.
Реализация алгоритма Дейкстры на C#Как реализовать алгоритм Дейкстры в C#: представление графа, очередь с приоритетом, поиск кратчайших путей от вершины и пример полного кода с разбором.
Шесть аспектов сортировки вставками в C#Как работает сортировка вставками в C#: пошаговый разбор алгоритма, код на массиве, оценка сложности и случаи, когда он быстрее других простых сортировок.
Из двоичной системы в десятичную в C#Как перевести двоичное число в десятичное в C#: ручной алгоритм со степенями двойки, готовый метод Convert.ToInt32 и примеры кода с проверкой ввода.
Использование шифра XOR на C# от теории к практикеКак реализовать шифр XOR в C#: принцип побитового исключающего ИЛИ, шифрование и расшифровка строки одним методом, работа с ключом и ограничения.
Быстрый поиск делителей числа на C#Как быстро найти все делители числа в C#: перебор до квадратного корня, сравнение с простым перебором, готовый код и оценка выигрыша по времени.