Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
САОД / Методы сортировки.ppt
Скачиваний:
16
Добавлен:
26.04.2015
Размер:
390.14 Кб
Скачать

Восточно-Сибирский государственный технологический университет

Кафедра «Системы информатики»

Структуры и алгоритмы обработки данных

Фрагмент дистанционного курса по теме:

Методы сортировки

Бильгаева Людмила Пурбоевна

Улан-Удэ, 2009

Основные определения

Сортировка - это процесс упорядочения некоторого множества элементов, на котором определены отношения порядка >, <, , .

Различают упорядочение множества элементов по возрастанию или убыванию.

Сложность алгоритма - одночлен, отражающий порядок величины требуемого ресурса (времени/дополнительной памяти) в зависимости от размерности задачи.

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

Например, для алгоритма с временной сложностью T(n2) при достаточно больших n можно утверждать, что при увеличении размера задачи (при сортировке - размера массива) в 3 раза время работы алгоритма увеличится в 32=9 раз.

Если операция выполняется за фиксированное число шагов, не зависящее от размера задачи, то принято писать T(1).

Методы сортировки

Внутренняя

Внешняя

1. Данные находятся в ОЗУ

1. Данные хранятся на ВЗУ

2. Необходимо

с медленным доступом (диск).

оптимизировать

2. Необходимо уменьшить число

число действий программы

обращений к этому

(число сравнений,

устройству.

обменов элементов)

 

Классификация методов внутренней сортировки

Сортировка

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Включением

 

 

Извлечением

 

Слиянием

 

 

 

Распределением

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Простым

 

 

 

 

 

 

Простым

 

 

 

 

Обменом

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

включением

 

 

 

 

 

извлечением

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Методом

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Простым

 

 

 

 

Шелла

 

Подсчетом

 

 

 

Древесным

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

обменом

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Методом

Хоара

Просмотр методов можно выполнить по гиперссылке

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

Дана числовая последовательность: 10, 5, 80, 6, 35. Выполнить сортировку включением.

Для сортировки требуется дополнительная память для размещения отсортированной последовательности.

A1, A2, A3, A4, A5

- исходная последовательность

B1, B2, B3, B4, B5

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

Исходная

Дополнительная

память

память

A1 A2 A3 A4 A5

B1 B2 B3 B4 B5

10

5

80

6

35

 

Сортировка подсчетом

Дана числовая последовательность: 10, 5, 80, 6, 35. Выполнить сортировку подсчетом.

Суть метода заключается в нахождении местоположения элемента в последовательности, т.е. его номер К+1

Сколько раз каждый элемент больше других

К 0

1

2

3

4

 

+

+

+

+

 

 

+

+

+

 

 

 

+

+

 

 

 

 

+

5

6

10

35

80

Простое извлечение

Дана числовая последовательность: 10, 5, 80, 6, 35. Выполнить сортировку извлечением.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A1

 

A2

 

A3

 

A4

A5

 

 

A1

A2

 

A3

A4

A5

 

 

A1

A2

 

A3

 

 

A4

A5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

6

80

 

10

35

 

 

10

5

 

80

 

6

 

35

 

 

5

10

 

80

 

6

35

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Определить минимальный

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Определить минимальный

 

 

 

Определить минимальный

 

 

 

 

 

 

элемент

 

 

 

 

 

 

 

 

 

элемент

 

 

 

 

 

 

 

 

 

элемент

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A1

 

A2

 

A3

 

A4

A5

 

 

 

 

 

 

 

 

 

A1

A2

 

 

A3

A4

A5

 

 

 

 

 

5

 

6

 

10

 

80

35

 

 

 

 

 

 

 

 

 

5

6

 

10

 

35

 

80

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Определить минимальный

 

 

 

 

 

 

Отсортированная

 

 

 

 

 

 

 

 

 

 

 

 

элемент

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

последовательность

 

 

 

35

Древесная сортировка

Сортировка называется древесной, потому что в этом методе используется структура данных, называемая двоичным деревом (рис 1).

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

( 1 )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

( 2 )

 

 

 

 

 

 

 

( 3 )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

( 4 )

( 5 )

( 6 )

( 7 )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

( 8 )

 

 

 

( 9 )

 

( 1 0 )

 

 

( 1 1 )

 

( 1 2 )

 

 

( 1 3 )

 

( 1 4 )

 

 

( 1 5 )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рисунок 1. Структура двоичного дерева