Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
отчет_Буяков_СВ_8306.doc
Скачиваний:
7
Добавлен:
26.10.2018
Размер:
423.94 Кб
Скачать

4. Проведенные эксперименты

Обозначения параметров экспериментов:

– нижняя граница для значений элементов массива

– верхняя граница для значений элементов массива

– количество элементов

Серия экспериментов №1

На графиках горизонтальная ось отображает количество элементов в сортируемом массиве, вертикальная – время работы алгоритма на данном массиве в секундах.

1. с шагом , заполнение массива – псевдослучайное

2. с шагом , заполнение массива – по неубыванию

3. с шагом , заполнение массива – по невозрастанию

Серия экспериментов №2

На графиках горизонтальная ось отображает верхнюю границу для значений элементов в сортируемом массиве, вертикальная – время работы алгоритма на данном массиве в секундах.

1. с шагом , , заполнение массива – псевдослучайное

2. с шагом , , заполнение массива – по неубыванию

3. с шагом , , заполнение массива – по невозрастанию

5. Сравнение алгоритмов

Серия экспериментов №1

В данной серии экспериментов меняется количество элементов в массиве.

На графике с псевдослучайным заполнением явно видно, что быстрая сортировка работает намного быстрее сортировки с использованием 7-кучи.

На графиках с заполнением по неубыванию и по невозрастанию так же видно, что быстрая сортировка работает быстрее сортировки с использованием 7-кучи.

Массивы, заполненные по неубыванию и по невозрастанию, естественно сортируются за меньшее время, чем заполненные псевдослучайно, но, судя по графикам, быстрая сортировка более чувствительна к упорядоченным массивам, чем сортировка с использованием 7-кучи.

Серия экспериментов №2

В данной серии экспериментов количество элементов в массиве не меняется – меняется только верхняя граница заполнения массива.

Во всех трех случаях явно видно, что быстрая сортировка работает быстрее сортировки с использованием 7-кучи.

Опять же в случае псевдослучайного заполнения оба алгоритма работают самое продолжительное время.

В случае заполнения по неубыванию и по невозрастанию быстрая сортировка работает примерно одинаковое время, а вот сортировка с использованием 7-кучи почти вдвое быстрее работает в случае заполнения по невозрастанию по сравнению со случаем заполнения по неубыванию, что не удивительно, если вспомнить алгоритм работы.

После проведённых экспериментов, очевидно, что алгоритм быстрой сортировки более предпочтителен, так как он работает гораздо быстрее алгоритма сортировки с использованием d-кучи при всех рассмотренных способах заполнения массива.

6. Выводы

Серия экспериментов №1

В первом эксперименте варьируемым параметром является количество элементов в массиве. На основании практически полученных данных, можно сделать вывод о том, что быстрая сортировка, в условиях данного эксперимента, является более предпочтительной во временном отношении, по сравнению с сортировкой с использованием 7-кучи, поэтому следует выбрать алгоритм быстрой сортировки как более эффективный в условиях данной задачи.

Сортировка с использованием 7-кучи

Графики зависимости времени работы алгоритма сортировки с использованием 7-кучи от количества элементов в массиве, относящиеся к первой серии экспериментов, напоминают график функции , где .

Временная оценка сортировки с использованием 7-кучи принадлежит классу функций , где – количество элементов в массиве.

Определение: Неотрицательная функция есть , если существует такая постоянная , что , для всех, кроме конечного (возможно пустого) множества, неотрицательных значений .

Функция принадлежит классу функций , так как , где для всех (так как при ).

Следовательно, по определению доказано, что практически полученные результаты соответствуют теоретическим оценкам временной сложности.

Быстрая сортировка

Графики зависимости времени работы алгоритма быстрой сортировки от количества элементов в массиве, относящиеся к первой серии экспериментов, напоминают график функции , где .

Временная оценка быстрой сортировки принадлежит классу функций , где – количество элементов в массиве.

Определение: Неотрицательная функция есть , если существует такая постоянная , что , для всех, кроме конечного (возможно пустого) множества, неотрицательных значений .

Функция принадлежит классу функций , так как , где для всех (так как при ).

Следовательно, по определению доказано, что практически полученные результаты соответствуют теоретическим оценкам временной сложности.

Серия экспериментов №2

Во втором эксперименте варьируемым параметром является верхняя граница заполнения массива. Опять же на основании практически полученных данных, можно сделать вывод о том, что быстрая сортировка, в условиях данного эксперимента, является более предпочтительной во временном отношении, по сравнению с сортировкой с использованием 7-кучи, поэтому следует выбрать алгоритм быстрой сортировки как более эффективный в условиях данной задачи.

Сортировка с использованием 7-кучи

Графики зависимости времени работы алгоритма сортировки с использованием 7-кучи от верхней границы заполнения массива, относящиеся ко второй серии экспериментов, напоминают график функции , где .

Временная оценка сортировки с использованием 7-кучи принадлежит классу функций , где – количество элементов в массиве, которое не меняется в течение эксперимента. То есть для данной серии экспериментов временная оценка сортировки с использованием 7-кучи принадлежит классу функций .

Определение: Неотрицательная функция есть , если существует такая постоянная , что , для всех, кроме конечного (возможно пустого) множества, неотрицательных значений .

Функция принадлежит классу функций , так как , где , для всех .

Следовательно, по определению доказано, что практически полученные результаты соответствуют теоретическим оценкам временной сложности.

Быстрая сортировка

Графики зависимости времени работы алгоритма быстрой сортировки от верхней границы заполнения массива, относящиеся ко второй серии экспериментов, напоминают график функции , где .

Временная оценка быстрой сортировки принадлежит классу функций , где – количество элементов в массиве, которое не меняется в течение эксперимента. То есть для данной серии экспериментов временная оценка быстрой сортировки принадлежит классу функций .

Определение: Неотрицательная функция есть , если существует такая постоянная , что , для всех, кроме конечного (возможно пустого) множества, неотрицательных значений .

Функция принадлежит классу функций , так как , где , для всех .

Следовательно, по определению доказано, что практически полученные результаты соответствуют теоретическим оценкам временной сложности.