Исследование алгоритмов сортировки в среде OC LINUX

Автор работы: Пользователь скрыл имя, 05 Декабря 2010 в 19:40, Не определен

Описание работы

Лабораторная работа

Файлы: 1 файл

curs11.doc

— 82.00 Кб (Скачать файл)

basearraycopy копия сортируемого массива.

Auxarray – вспомогательный массив, состоящий из 16000*factor элементов типа LongInt, factor = 1.4

  • Константы:
  • maxnumber      – вспомогательная константа, равная 70000

    factor константа, равная 1.4 = размер(auxarray)/размер(basearray)

     

    Таблица и график результатов  исследования

     

    Таблица

    Результатов исследования зависимости времени (в мс) сортировки массива от его  размеров и способа заполнения.

     

                                                                                                   

  • Алгоритм
  • Сортировка  методом Шелла / Сортировка массивом
  • тип
  • Размер
  • Упорядоченные Обратный порядок

  • Вырожденные
  • Случайные
  • 250 0.016/0.042 0.040/0.035 0.043/0.074 0.064/0.039
    500 0.033/0.067 0.109/0.067 0.086/0.202 0.148/0.074
    1000 0.074/0.139 0.323/0.132 0.305/0.620 0.393/0.146
    2000 0.165/0.262 0.552/0.262 0.448/2.132 0.895/0.309
    4000 0.364/0.526 1.224/0.513 0.975/8.135 2.079/0.598
    8000 0.802/1.015 2.716/1.010 2.244/29.419 4.607/1.207
    16000 1.759/1.914 4.327/2.005 5.111/119.213 10.991/2.416
    N ~N / N ~N / N ~N / N2 ~N / N
  • График
  • Зависимости времени сортировки от размера сортируемой  последовательности, заполненной случайным  образом.

     

        

  •  
     
     

                 Начало

         

                           Задание размера массива и типа

                                    его заполнения

       

    Заполнение  массива

                        Сохранение копии массива

     

                        Обнуление таймера

                     Сортировка методом Шелла

                   Получение времени сортировки

                 

                                       Проверка,               

                           правильно ли отсортирован   нет  

         массив?

     

                   Да

    Восстановление  исходного 

    массива из копии

                                   Обнуление таймера

                                 Сортировка массивом

                             Получение времени сортировки

             Проверка,    Нет

    правильно ли отсортирован

                                  массив?

                   Да

                                 Проверка,

    Да  есть ли неисследованные   

    комбинации размера массива и

                                типа его заполнения?

     

                    Нет

    Вывод результатов

     

    6. Анализ результатов эксперимента

     
     

    В результате исследования я установил, что метод  Шелла является более эффективным  по сравнению с сортировкой массивом при сортировке упорядоченных и вырожденных данных, причем преимущество в скорости в случае с вырожденными данными возрастает с увеличением количества сортируемых элементов, что объясняется многочисленными перестановками при сортировке часто повторяющихся данных в алгоритме сортировки массивом. Метод Шелла приблизительно одинаково эффективен при упорядочивании данных любого типа и время сортировки пропорционально количеству элементов в массиве. А вот со случайными данными и данными обратного порядка очень быстро справляется сортировка массивом, опережая сортировку методом Шелла.

     

    7.   Выводы

     

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

    Информация о работе Исследование алгоритмов сортировки в среде OC LINUX