Главная страница
Навигация по странице:

  • Тема: Алгоритмы сортировки и поиска.

  • Алгоритмы сортировки 1. Сортировка тестового массива данных

  • 2. Исследование и анализ эффективности различных алгоритмов сортировки

  • 1. Поиск в тестовом массиве данных

  • 2. Исследование и анализ эффективности различных алгоритмов поиска

  • Поиск В данной части программы мы линейным поиском ищем элемент базы данных, название которого совпадает с названием прибора, введенного пользователем.Вывод

  • 5,6 лабы. Алгоритмы сортировки и поиска


    Скачать 27.11 Kb.
    НазваниеАлгоритмы сортировки и поиска
    Дата17.02.2019
    Размер27.11 Kb.
    Формат файлаdocx
    Имя файла5,6 лабы.docx
    ТипОтчет
    #67872

    МИНОБРНАУКИ РОССИИ

    Санкт-Петербургский государственный

    электротехнический университет

    «ЛЭТИ» им. В.И. Ульянова (Ленина)

    Кафедра «РАПС»

    отчет

    по лабораторной работе №5,6

    по дисциплине «Программирование и основы алгоритмизации»

    Тема: Алгоритмы сортировки и поиска.

    Студент гр. 7401




    Серебрянский М.Ю.

    Преподаватель




    Калинин А.В.



    Санкт-Петербург

    2018
    Алгоритмы сортировки

    1. Сортировка тестового массива данных

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

    2. Исследование и анализ эффективности различных алгоритмов сортировки

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

    Все остальные алгоритмы показали себя примерно одинаково.

    3. Исследование зависимости эффективности алгоритмов сортировки от харак-тера входных данных

    Упорядоченные данные:

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

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

    Данные, упорядоченные в обратном порядке:

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

    Наблюдения:
    1. Сортировка тестового массива данных.


    44 Яблоки

    55 Апельсины

    12 Бананы

    42 Груши

    94 Сливы

    18 Виноград

    6 Абрикосы

    67 Вишня

    Массив из 8 элементов.

    Тип сортировки

    Сортировка прямым включением

    Сортировка прямым выбором

    Сортировка прямым обменом

    Шейкерная сортировка

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

    Число сравнений

    20

    28

    28

    22

    22

    Число перестановок

    20

    5

    15

    15

    5
    1. Сортировка заданного массива данных.


    02 Уфа

    58 Пенза

    05 Махачкала

    95 Краснодар

    07 Нальчик

    13 Саранск

    19 Абакан

    66 Екатеринб

    45 Курган

    68 Тамбов

    77 Москва

    78 Спб

    71 Тула

    74 Челябинск

    61 Ростов




    Массив из 15 элементов.

    Тип

    сортировки

    Сортировка прямым включением

    Сортировка прямым выбором

    Сортировка прямым обменом

    Шейкерная сортировка

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

    Число сравнений

    37

    105

    105

    48

    69

    Число перестановок

    32

    11

    23

    23

    12



    1. Исследование и анализ эффективности различных алгоритмов сортировки.


    Для получения данных об эффективности работы 5-ти алгоритмов проведём

    Тип сортировки

    Сортировка прямым включением

    Сортировка прямым выбором

    Сортировка прямым обменом

    Шейкерная сортировка

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

    Время, с


    Размерность

    25 000

    0,593

    1,092

    1,606

    1,186

    0,015

    50 000

    2,402

    4,305

    6,489

    4,680

    0,016

    75 000

    5,226

    9,719

    14,695

    10,452

    0,032

    100 000

    9,297

    17,410

    26,240

    18,595

    0,047



    1. Исследование зависимости эффективности алгоритмов сортировки от характера входных данных.

    • Неупорядоченный массив:


      Тип сортировки

      Сортировка прямым включением

      Сортировка прямым выбором

      Сортировка прямым обменом

      Шейкерная сортировка

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

      Время, с

      9,329

      17,347

      26,723

      18,766

      0,047

      Число сравнений

      2510009512

      4999950000

      4999950000

      3326561666

      2209799

      Число перестановок

      2509909517

      99987

      2500435786

      2493396535

      384998

    • Упорядоченный по возрастанию массив:


    Тип сортировки

    Сортировка прямым включением

    Сортировка прямым выбором

    Сортировка прямым обменом

    Шейкерная сортировка

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

    Время, с

    0,000

    17,800

    17,129

    0,000

    0,016

    Число сравнений

    99999

    4999950000

    4999950000

    99999

    1602638

    Число перестановок

    0

    0

    0

    0

    0



    • Упорядоченный по убыванию массив:



    Тип сортировки

    Сортировка прямым включением

    Сортировка прямым выбором

    Сортировка прямым обменом

    Шейкерная сортировка

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

    Время, с

    18,705

    17,270

    18,657

    18,892

    0,015

    Число сравнений

    4999949824

    4999950000

    4999950000

    4999949999

    1602708

    Число перестановок

    4999945097

    52197

    4999945024

    4999945121

    50000




    Алгоритмы поиска:

    Поиск_в_тестовом_массиве_данных'>1. Поиск в тестовом массиве данных

    Проверили все алгоритмы поиска. На тестовом массиве данных поиск осуществляется быстрее всего интерполяционным поиском.

    2. Исследование и анализ эффективности различных алгоритмов поиска

    Линейный поиск:

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

    Двоичный поиск:

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

    Интерполяционный поиск:

    Данный поиск также, как и двоичный требует чтобы данные в массиве, в котором производится поиск были отсортированы. этот алгоритм поиска работает еще быстрее, чем двоичный. Однако этот алгоритм также нецелесообразно использовать, если массив данных, в котором производится поиск не должен быть упорядочен.

    1. В текстовом массиве. «Виноград»


    1 Персики

    3 Черешня

    6 Абрикосы

    12 Бананы

    18 Виноград

    42 Груши

    44 Яблоки

    55 Апельсины

    67 Вишня

    94 Сливы

    95 Лимоны

    98 Арбузы

    99 Дыни




    Тип

    сортировки

    Линейный поиск

    Двоичный поиск

    Интерполяционный поиск

    Ключ поиска

    18

    Число шагов

    5

    3

    3



    1. В заданном массиве. «Mazda»

    Тип

    сортировки

    Линейный поиск

    Двоичный поиск

    Интерполяционный поиск

    Ключ поиска

    87

    Число шагов

    16

    4

    2

    66 Volkswagen

    89 Nissan

    90 Toyota

    10 Kyron

    45 Lincoln

    23 Maybach

    55 Hammer

    87 Mazda

    91 Bentley

    89 Fiat

    34 Renault

    9 Chrysler

    87 Volvo

    78 Ferrari

    45 Lamborgini

    89 Bugatti



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





    Так как размер нашей базы не велик, мы реализовали сортировку прямым выбором, которая на небольшом массиве данных ведет себя практически так же, как и быстрая сортировка.

    Поиск

    В данной части программы мы линейным поиском ищем элемент базы данных, название которого совпадает с названием прибора, введенного пользователем.

    Вывод

    В этой лабораторной работе мы познакомились с различными видами сортировок и поиска. Также мы реализовали алгоритмы сортировки и поиска в нашем проекте.


    написать администратору сайта