Задачи: Создать и реализовать алгоритм построения массива данных, содержащего информацию со случайными ключами. Реализовать предложенные алгоритмы внутренней сортировки

Вид материалаДокументы
Подобный материал:
Методы программирования


Задание. Реализация методов внутренней сортировки в виде динамической библиотеки.


Под динамической библиотекой понимается библиотека функций, выполненной в виде отдельного откомпилированного модуля DLL, который присоединяется к исполняемому файлу во время его исполнения.

Задачи:
  1. Создать и реализовать алгоритм построения массива данных, содержащего информацию со случайными ключами.
  2. Реализовать предложенные алгоритмы внутренней сортировки.
  3. Скомпоновать алгоритмы сортировки в виде DLL.
  4. Реализовать графическую оболочку для тестирования созданных алгоритмов сортировки.

Комментарии:
  1. Формируемый массив данных должен содержать произвольную информацию в поле данных (например, текст) и ключи для сортировки. Ключ – это число, имеющее тип беззнакового целого. При создании массива ключи должны иметь случайные значения с равномерным распределением на интервале от 1 до N, где N – число, задаваемое пользователем.
  2. Размер массива также задается пользователем, но с условием, что его размер не превышает половины всей свободной памяти компьютера.
  3. Алгоритмы сортировки должны быть реализованы согласно [1]. Методы сортировки будут выбраны из списка:
  1. карманная сортировка с двумя массивами;
  2. сортировка простым выбором;
  3. пузырьковая сортировка;
  4. карманная сортировка в исходном массиве;
  5. шейкер-сортировка;
  6. метод подсчета сравнений;
  7. метод простых вставок;
  8. метод двухпутевых вставок;
  9. метод бинарных вставок;
  10. сортировка простым двухпутевым слиянием;
  11. сортировка квадратичным выбором;
  12. поразрядная распределяющая сортировка, начиная со старших разрядов;
  13. сортировка естественным двухпутевым слиянием;
  14. метод Шелла;
  15. поразрядная распределяющая сортировка, начиная с младших разрядов;
  16. пирамидальная сортировка;
  17. поразрядная обменная сортировка;
  18. быстрая сортировка Хоара (сортировка с разделением);
  19. метод Бетчера;
  20. сортировка квадратичным выбором;
  21. сортировка кубическим выбором.
  1. Алгоритмы должны быть реализованы в виде функций, которые в качестве исходных параметров принимают: указатель на первый элемент массива и размер массива. Возвращаемый результат – указатель на отсортированный массив.
  2. Все реализованные алгоритмы должны быть скомпонованы в виде библиотеки DLL, название каждой функции должно быть созвучно с названием метода сортировки.
  3. Графическая оболочка должна обеспечивать ввод необходимой информации для создания массива данных, его просмотра и запуска необходимых методов сортировки.
  4. Оболочка как исполняемый файл использует методы сортировки, осуществляя доступ к функциям DLL.



[1] Кнут Д.Э. Искусство программирования. Т. 3. Сортировка и поиск.