Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Л р №5 Методы сортировки.doc
Скачиваний:
7
Добавлен:
31.08.2019
Размер:
349.18 Кб
Скачать

1.2. Сортировка вставкой

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

Сортировку вставкой рассмотрим на примере заданной неупорядоченной последовательности элементов:

{40, 11, 83, 57, 32, 21, 75, 64}.

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

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

На втором этапе из неупорядоченной последовательности выбирается элемент и сравнивается с двумя упорядоченными ранее элементами. Так как он больше предыдущих, то остается на месте. Затем анализируются четвертый, пятый и последующие элементы — до тех пор, пока весь список не будет упорядочен, что имеет место на последнем (седьмом) этапе.

1-й

40, 11, 83, 57, 32, 21, 75, 64

|11, 40,| 83, 57, 32, 21, 75, 64

2-й

11, 40, 83, 57, 32, 21, 75, 64

|11, 40, 57,| 83, 32, 21, 75, 64

3-й

11, 40, 83, 57, 32, 21, 75, 64

|11, 40, 57, 83,| 32, 21, 75, 64

4-й

11, 40, 57, 83, 32, 21, 75, 64

|11, 32, 40, 57, 83,| 21, 75, 64

5-й

11, 32, 40, 57, 83, 21, 75, 64

[11, 21, 32, 40, 57, 83,] 75, 64

6-й

11, 21, 32, 40, 57, 83, 75, 64

[11, 21, 32, 40, 57, 75, 83,] 64

7-й

11, 21, 32, 40, 57, 75, 83, 64

[11, 21, 32, 40, 57, 64, 75, 83]

Рис. 3. Сортировка вставкой

1.3 Сортировка слиянием

Разновидностью сортировки вставкой является метод фон Неймана.

Алгоритм решения этой задачи, известный как «сортировка фон Неймана» или сортировка слиянием, состоит в следующем: сначала анализируются первые элементы обоих массивов. Меньший элемент переписывается в новый массив. Оставшийся элемент последовательно сравнивается с элементами из другого массива. В новый массив после каждого сравнения попадает меньший элемент. Процесс продолжается до исчерпания элементов одного из массивов. Затем остаток другого массива дописывается в новый массив. Полученный новый массив упорядочен таким же образом, как исходные.

Пусть имеются два отсортированных в порядке возрастания массива и и имеется пустой , который необходимо заполнить значениями массивов р и q в порядке возрастания. Для слияния выполняются следующие действия: сравниваются р[1] и q[1], и меньшее из значений записывается в r[1]. Предположим, что это значение р[1]. Тогда р[2] сравнивается с q[1] и меньшее из значений заносится в r[2]. Предположим, что это значение q[1]. Тогда на следующем шаге сравниваются значения р[2] и q[2] и т. д., пока не достигнута граница одного из массивов. Тогда остаток другого массива просто дописывается в «хвост» массива r.

Пример слияния двух массивов показан на рис. 4.

Сложность метода сортировки вставкой порядка О(п2).

1 шаг

3

5

7

44

6

8

33

255

3

2 шаг

3

5

7

44

6

8

33

255

3

5

3 шаг

3

5

7

4 4

6

8

33

255

3

5

6

4 шаг

3

5

7

44

6

8

33

255

3

5

6

7

5 шаг

3

5

7

44

6

8

33

255

3

5

6

7

8

6 шаг

3

5

7

44

6

8

33

255

3

5

6

7

8

33

7 шаг

3

5

7

4 4

6

8

33

255

3

5

6

7

8

33

44

5 шаг

3

5

7

44

6

8

33

2 55

3

5

6

7

8

33

44

255

Рис. 4. Сортировка слиянием