Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
My 1.docx
Скачиваний:
3
Добавлен:
08.09.2019
Размер:
51.12 Кб
Скачать

Разработка и анализ алгоритма сортировки методом простых вставок

Содержание

Сортировка - процесс перегруппировки заданного множества объектов в некотором определенном порядке. Цель сортировки — облегчить последующий поиск элементов в таком отсортированном множестве. Это почти универсальная, фундаментальная деятельность.

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

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

Цель: проанализировать алгоритм сортировки методом простых вставок на основе сортировки таблицы адресов. Проанализировать зависимость среднего времени от числа сортируемых элементов.

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

  1. Обзор алгоритмов сортировки

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

  1. Оценка алгоритма сортировки

Алгоритмы сортировки оцениваются по скорости выполнения и эффективности использования памяти:

Время — основной параметр, характеризующий быстродействие алгоритма. Называется также вычислительной сложностью. Для упорядочения важны худшее, среднее и лучшее поведение алгоритма в терминах мощности входного множества A. Если на вход алгоритму подаётся множество A, то обозначим n = | A | . Для типичного алгоритма хорошее поведение — это O(n log n) и плохое поведение — это O(n2) . Идеальное поведение для упорядочения — O(n) . Также существует понятие сортирующих сетей. Предполагая, что можно одновременно (например, при параллельном вычислении) проводить несколько сравнений, можно отсортировать n чисел за O(log2n) операций. При этом число n должно быть заранее известно;

Память — ряд алгоритмов требует выделения дополнительной памяти под временное хранение данных. Как правило, эти алгоритмы требуют O(log n) памяти. При оценке не учитывается место, которое занимает исходный массив и независящие от входной последовательности затраты, например, на хранение кода программы (так как всё это потребляет O(1)). Алгоритмы сортировки, не потребляющие дополнительной памяти, относят к сортировкам на месте.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]