Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методы и алгоритмы сортировки и обработки данных / Методические указания для заочников (часть 1).doc
Скачиваний:
35
Добавлен:
01.05.2014
Размер:
148.99 Кб
Скачать

3.1.2. Сортировка с помощью прямого выбора

Пусть имеется массив An, где n - количество элементов в массиве. Сначала выбирается элемент с наименьшим значением и меняется местами с элементом A1. Этот процесс затем осуществляется с отставшимися n-1 элементами, n-2 элементами и так до тех пор пока не останется один самый больший элемент.

Число сравнений : C = (n2 - n)/2

Число перестановок: Mmin = 3 * (n-1)

Mmax = n2/4 + 3 * (n-1)

Пример:

Исх.послед. 55 44 12 42 94 18 06 67

06 44 12 42 94 18 55 67

06 12 44 42 94 18 55 67

06 12 18 42 94 44 55 67

06 12 18 42 94 44 55 67

06 12 18 42 44 94 55 67

06 12 18 42 44 55 94 67

06 12 18 42 44 55 67 94

3.1.3.Сортировка с помощью прямого обмена (Пузырьковая сортировка)

Идея данной сортировки основана на парном сравнение соседних элементов в массиве и перестановке их в требуемом порядке: процесс продолжается до полного упорядочения всех элементов.

Пример:

Исх.послед. 19 13 05 27 01 26 31 16 02 09 11 21

i = 1 13 05 19 01 26 27 16 02 09 11 21 31

i = 2 05 13 01 19 26 16 02 09 11 21 27 31

i = 3 05 01 13 19 16 02 09 11 21 26 27 31

i = 4 01 05 13 16 02 09 11 19 21 26 27 31

i = 5 01 05 13 02 09 11 16 19 21 26 27 31

i = 6 01 05 02 09 11 13 16 19 21 26 27 31

i = 7 01 02 05 09 11 13 16 19 21 26 27 31

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

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

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

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

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

этом:

di = (di-1 + 1) / 2

При просмотре каждое значение сравнивается со значением, расположенным на d позиции дальше в векторе величин. Если верхнее значение больше нижнего значения, то делается перестановка и т.д.

Пример:

исх.

массив

Просмотры

1

2

3

4

d=6

d=3

d=2

d=1

19

19

09 x

02 x

01 x

13

13

01 x

01

02 x

05

02 x

02

09 x

05 x

27

09 x

19 x

05 x

09 x

01

01

11 xx

11

11

26

21 x

05 x

13 xx

13

31

31

27 x

16 xx

16

16

16

13 xx

19 x

19

02

05 x

21 x

21 xxx

21

09

27

31 x

26 x

26

11

11

16 x

27 x

27

21

26 x

26

31 xx

31

Обозначения: x - обмен, хх - двойной обмен, ххх - тройной обмен