1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/TheAlgorithms-algo

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
f21
Loading...
README.md

50 реализованных кодовых примеров для понимания данных и алгоритмов

Найдите мой публичный аккаунт WeChat "Xiao Zheng Ge" или используйте WeChat для сканирования QR-кода ниже, чтобы подписаться

Подпишитесь на публичный аккаунт WeChat и получите эксклюзивные материалы по алгорифмам, отправив сообщение "PDF".

Бывший инженер Google, автор курса "Красота данных и алгоритмов", который изучили более 100 000 человек

t2

Массивы

  • Реализация массива с поддержкой динамического расширения
  • Реализация фиксированного размера отсортированного массива, поддерживающего динамическое добавление, удаление и изменение
  • Реализация объединения двух отсортированных массивов в один отсортированный массив

Связные списки

  • Реализация односвязного списка, циклического связного списка и двусвязного списка, поддерживающих операции добавления и удаления
  • Реализация обратной связи односвязного списка
  • Реализация объединения двух отсортированных связных списков в один отсортированный список
  • Реализация поиска среднего узла в связном списке

Стеки

  • Реализация последовательного стека с использованием массива
  • Реализация связного стека с использованием связного списка
  • Программирование моделирования функций перемещения назад и вперед в браузере## Очереди
  • Реализация последовательной очереди с использованием массива
  • Реализация связанной очереди с использованием связного списка
  • Реализация круговой очереди

Рекурсия

  • Программирование вычисления значения последовательности Фибоначчи f(n)=f(n-1)+f(n-2)
  • Программирование вычисления факториала n!
  • Программирование всех возможных перестановок набора данных

Сортировка

  • Реализация сортировки слиянием, быстрой сортировки, вставочной сортировки, пузырьковой сортировки и выборочной сортировки
  • Программирование поиска k-го по величине элемента в наборе данных за время O(n)

Двоичный поиск

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

Хэш-таблицы

  • Реализация хэш-таблицы с использованием метода цепочек для решения конфликтов
  • Реализация алгоритма LRU для управления кэшированием

Строки

  • Реализация дерева префиксных деревьев (Trie) со специальным набором символов a-z
  • Реализация простого алгоритма поиска подстрок

Двоичные деревья

  • Реализация двоичного дерева поиска, поддерживающего операции вставки, удаления и поиска
  • Реализация поиска следующего и предыдущего узлов в двоичном дереве поиска
  • Реализация рекурсивного и нерекурсивного обхода дерева: прямой, центральный, обратный и по уровням## Куча
  • Реализация минимума и максимума кучи, а также приоритетной очереди
  • Реализация сортировки кучей
  • Использование приоритетной очереди для объединения k отсортированных массивов
  • Поиск максимального Top K в динамическом наборе данных

Графы

  • Реализация ориентированного графа, неориентированного графа, графа с весами и графа без весов с помощью матрицы смежности и списка смежности
  • Реализация глубокого и широкого поиска в глубину
  • Реализация алгоритмов Dijkstra, A*
  • Реализация алгоритмов топологической сортировки Kahn и DFS

Обратный отбор

  • Использование алгоритма обратного отбора для решения задачи восьми ферзей
  • Использование алгоритма обратного отбора для решения задачи рюкзака 0-1

Разделяй и властвуй

  • Использование метода "разделяй и властвуй" для вычисления количества инвертированных пар в наборе данных

Динамическое программирование

  • Задача рюкзака 0-1
  • Минимальная сумма пути
  • Программная реализация минимального расстояния редактирования Левенштейна
  • Программная реализация поиска наибольшей общей подпоследовательности двух строк
  • Программная реализация поиска наибольшей возрастающей подпоследовательности в последовательности данных

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

50 реализаций кода, которые необходимо знать и понимать в области структур данных и алгоритмов. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/TheAlgorithms-algo.git
git@api.gitlife.ru:oschina-mirror/TheAlgorithms-algo.git
oschina-mirror
TheAlgorithms-algo
TheAlgorithms-algo
master