Skip to content

Algorithms-and-Data-Structures-2021/semester-work-topological-sort

Repository files navigation

Topological Sort

CMake

  • Какая структура данных реализуется? Topological Sort - Топологоческая сортировка.
  • Что она из себя представляет (сбалансированное дерево, линейный список и пр.)? Топологическая сортировка — упорядочивание вершин бесконтурного ориентированного графа согласно частичному порядку, заданному ребрами орграфа на множестве его вершин.
  • Где и как она используется (приложения)? Топологическая сортировка применяется в самых разных ситуациях, например при распараллеливании алгоритмов, когда по некоторому описанию алгоритма нужно составить граф зависимостей его операций и, отсортировав его топологически, определить, какие из операций являются независимыми и могут выполняться параллельно (одновременно). Примером использования топологической сортировки может служить создание карты сайта, где имеет место древовидная система разделов.
  • Какие операции над ней можно выполнять (поиск, удаление, добавление, вставка и пр.)? Сортировка.
  • Какова теоретическая сложность операций (поиск за O(log(n)), вставка за O(n^2) и т.д.)? Сложность времени такая же, как и у DFS (обход в глубину), которая равна O(V+E).
  • Какая-то другая справочная информация о проекте. Задача топологической сортировки графа состоит в следующем: указать такой линейный порядок на его вершинах, чтобы любое ребро вело от вершины с меньшим номером к вершине с большим номером. Очевидно, что если в графе есть циклы, то такого порядка не существует.

Команда "INFINITE TSUKUYOMI DREAM"

Фамилия Имя Вклад (%) Прозвище
Усанов Илья 50 Мадара Учиха
Сабитов Данияр 50 Обито Учиха

Девиз команды

Миру нет необходимости развиваться дальше. Человечеству будет лучше, если оно заснёт в вечном Гендзюцу Тсукуёми.

Структура проекта

Описание основных частей семестрового проекта.

Пример. Проект состоит из следующих частей:

  • src/include - реализация структуры данных (исходный код и заголовочные файлы);
  • benchmark - контрольные тесты производительности структуры данных (операции добавления, удаления, поиска и пр.);
  • examples - примеры работы со структурой данных;
  • dataset - наборы данных для запуска контрольных тестов и их генерация;

Требования (Prerequisites)

Рекомендуемые требования:

  1. С++ компилятор c поддержкой стандарта C++17 (например, GNU GCC 8.1.x и выше).
  2. Система автоматизации сборки CMake (версия 3.12.x и выше).
  3. Интерпретатор Python (версия 3.7.x и выше).
  4. Рекомендуемый объем оперативной памяти - не менее 4 ГБ.
  5. Свободное дисковое пространство объемом ~ 3 ГБ (набор данных для контрольных тестов).

Сборка и запуск

Windows

Сборка проекта

Склонируйте проект к себе на устройство через Git for Windows (либо используйте возможности IDE):

git clone https://github.com/Algorithms-and-Data-Structures-2021/semester-work-topological-sort.git

Источники

About

INFINITE TSUKUYOMI DREAM

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published