Добавлен: 18.06.2023
Просмотров: 81
Скачиваний: 3
В данной статье постараемся это выяснить. Для обеспечения наилучших результатов все представленные алгоритмы будут сортировать целочисленный массив из 200 элементов. Компьютер, на котором будет проводится тестирование имеет следующие характеристики: процессор AMD A6-3400M 4x1.4 GHz, оперативная память 8 GB, операционная система Windows 10 x64 build 10586.36.
Для проведения тестирования будет произведено по 5 запусков каждого алгоритма и выбрано наилучшее время. Наилучшее время и используемая при этом память будут занесены в таблицу. Также будет проведено тестирование скорости сортировки массива размером в 10, 50, 200 и 1000 элементов чтобы определить для каких задач предназначен конкретный алгоритм.
Полностью неотсортированный массив (данные показаны на рисунке 3.):
Рисунок 3.
Частично отсортированный массив (половина элементов упорядочена) (данные показаны на рисунке 4) :
Рисунок 4.
Результаты, предоставленые в графиках (Рисунок 5. Рисунок 6):
Рисунок 5.
Рисунок 6.
Описание алгоритма выполнения практического задания
Используемое программное обеспечение:
- Visual Studio 2015
Используемый язык программирования:
- C++
Использования данных:
- Полностью неотсортированный массив из 10, 50, 200 и 1000 элементов
- Частично отсортированный массив 10, 50, 200 и 1000 элементов
Алгоритмы сортировок на писанных на C++:
- Selection sort (сортировка выбором)
- Bubble sort (сортировка пузырьком)
- Insertion sort (сортировка вставками)
- Quick sort (быстрая сортировка)
- Comb sort (сортировка расческой)
Алгоритм выполнения:
- Засекаем время начала (программным способом на С++)
- Последовательный запуск программ с разными наборов данных
- Засекаем время конца сортировки (программным способом на С++)
- Собираем данные в табличку
- По Таблице строим графики
- Делаем выводы
Заключение
Универсального алгоритма сортировки не существует
Алгоритмы сортировки сильно зависят от времени и используемой памяти
Сортировка данных это очень важный, трудный и полезный процесс оптимизации программного обеспечения