Методы сортировки данных

Содержание

Слайд 2

Слайд 3

Алгоритм сортировки вставкой

Алгоритм сортировки вставкой

Слайд 4

Суть сортировки: Упорядочиваются два элемента массива Вставка третьего элемента в соответствующее

Суть сортировки:
Упорядочиваются два элемента массива
Вставка третьего элемента в соответствующее место

по отношению к первым двум элементам.
Этот процесс повторяется до тех пор, пока все элементы не будут упорядочены.
Слайд 5

Сортировка вставкой 13 6 2 10 8 13 6 8 2

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

13

6

2

10

8

13

6

8

2

13

6

8

8

13

13

10

6<13

8>6 8<13

2<6 2<8 2<13

10<13

Массив отсортирован по возрастанию

по возрастанию

Слайд 6

Пусть нужно отсортировать массив А по возрастанию, в котором N элементов

Пусть нужно отсортировать массив А по возрастанию, в котором N элементов

методом вставки
Вспомогательные переменные
j – номер первого элемента остатка.
i – номер перемещаемого элемента.
f – условие выхода из цикла (если f=1, то выход)
Val – промежуточное значение, используемое для перемещения элементов массив

Постановка задачи

Слайд 7

Начало алгоритма. Шаг 1 j:=2, Шаг 2 Пока j Шаг 2.1

Начало алгоритма.
Шаг 1 j:=2,
Шаг 2 Пока j<=N выполнять:
Шаг 2.1 i:=j; f:=0,
Шаг

2.2 Пока i>=2 и f=0 выполнять:
Шаг 2.2.1 Если A[i-1]>A[i]
то Val:=A[i-1];
A[i-1]:=A[i];
A[i]:=Val,
иначе f:=1,
Шаг 2.2.2 i:=i-1,
Шаг 2.3 j:=j+1.
Конец алгоритма.
Слайд 8

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

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

Слайд 9

Суть сортировки: Выбирается элемент с наименьшим значением и делается его обмен

Суть сортировки:
Выбирается элемент с наименьшим значением и делается его обмен с

первым элементом массива.
Затем находится элемент с наименьшим значением из оставшихся n-1 элементов и делается его обмен со вторым элементом и т.д. до обмена двух последних элементов.
Слайд 10

13 6 2 10 8 Сортировка выбором Min 2 Min 6

13

6

2

10

8

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

Min

2

Min

6

Min

8

13

Min

10

13

Отсортиро-ванная часть

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

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

Массив отсортирован по возрастанию

по возрастанию

Слайд 11

Постановка задачи Пусть нужно отсортировать массив А по возрастанию, в котором

Постановка задачи

Пусть нужно отсортировать массив А по возрастанию, в котором N

элементов методом выбора.
Вспомогательные переменные
j – номер первого элемента остатка.
i – номер перемещаемого элемента.
min – минимальное число в массиве.
Imin – номер минимального числа в массиве
Слайд 12

Начало алгоритма. Шаг 1 j:=1, Шаг 2 Пока j Шаг 2.1

Начало алгоритма.
Шаг 1 j:=1,
Шаг 2 Пока j<=N-1 выполнять:
Шаг 2.1 min:=a[j],

Imin:=j, i:=j+1
Шаг 2.2 Пока i<=N выполнять:
Шаг 2.2.1 Если A[i] то min:=a[i], Imin:=i
Шаг 2.2.2 i:=i+1,
Шаг 2.3 A[Imin]:=A[j], A[j]:=min
Шаг 2.4 j:=j+1.
Конец алгоритма.
Слайд 13

Алгоритм сортировки обменом («пузырьковая»)

Алгоритм сортировки обменом («пузырьковая»)

Слайд 14

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

Суть сортировки:
Последовательно просматривается массив и сравнивается каждая пара элементов между собой.


При этом "неправильное" расположение элементов устраняется путем их перестановки.
Процесс просмотра и сравнения элементов повторяется до просмотра всего массива.
Слайд 15

Сортировка обменом 13 6 2 10 8 Первый просмотр 6 13

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

13

6

2

10

8

Первый просмотр

6

13

8

13

13

2

10

13

Второй просмотр

6

8

2

8

Третий просмотр

6

2

6

Четвертый просмотр

2

6<13

8<13

2<13

10<13

Отсортиро-ванная часть

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

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

Массив отсортирован по

возрастанию

6<8

8>2

8<10

6>2

6<8

6>2

по возрастанию

Слайд 16

Пусть нужно отсортировать массив А по возрастанию, в котором N элементов

Пусть нужно отсортировать массив А по возрастанию, в котором N элементов

методом обмена
Вспомогательные переменные
j – номер первого элемента остатка.
i – номер перемещаемого элемента.
Val – промежуточное значение, используемое для перемещения элементов массива

Постановка задачи

Слайд 17

Начало алгоритма. Шаг 1 j:=N, Шаг 2 Пока j>=2 выполнять: Шаг

Начало алгоритма.
Шаг 1 j:=N,
Шаг 2 Пока j>=2 выполнять:
Шаг 2.1 i:=1; ,
Шаг

2.2 Пока i<=j-1выполнять:
Шаг 2.2.1 Если A[i]>A[i+1]
то Val:=A[i];
A[i]:=A[i+1];
A[i+1]:=Val,
Шаг 2.2.2 i=i+1,
Шаг 2.3 j:=j-1.
Конец алгоритма.

Сравнение соседних элементов

Обмен соседних элементов местами, в случае если левый больше правого

Формируется отсортированная часть

Слайд 18

Алгоритм сортировки Шелла

Алгоритм сортировки Шелла

Слайд 19

Классифицируется как «слияние вставкой»; Называется «сортировкой с убывающим шагом» Общий метод,

Классифицируется как «слияние вставкой»;
Называется «сортировкой с убывающим шагом»
Общий метод, который использует

сортировку вставкой, применяет принцип уменьшения расстояния между сравниваемыми элементами
Слайд 20

Условия реализации: Конкретная последовательность шагов может быть другой, но последний шаг

Условия реализации:
Конкретная последовательность шагов может быть другой, но последний шаг должен

быть равен 1;
Следует избегать последовательность, которые являются степенями 2 (т.е. нельзя использовать последовательность шагов – 4,2)

?

?

Слайд 21

Суть сортировки: Сначала сортируются все элементы, отстоящие друг от друга на

Суть сортировки:
Сначала сортируются все элементы, отстоящие друг от друга на три

позиции
Затем сортируются элементы, расположенные на расстоянии двух позиций
Наконец, сортируются все соседние элементы
Слайд 22

12 Сортировка Шелла 8 14 6 4 1 2 3 4

12

Сортировка Шелла

8

14

6

4

1

2

3

4

1

2

1 шаг. 4 группы из 2-х элементов

1

7

3

4

12

4

8

9

9

1

14

7

6

2 шаг. 2 группы

из 4-х элементов

1

2

1

2

1

2

1

2

4

1

6

8

4<12

8<9

1<14

6<7

4>1

8>6

по возрастанию

4<12

12

1<4

8<9

9

6<8

12<14

14

9>7

9

7

8>7

8

7

6<7

Слайд 23

Сортировка Шелла 4 1 6 3 шаг. 1 группа из 8-ми

Сортировка Шелла

4

1

6

3 шаг. 1 группа из 8-ми элементов

Массив отсортирован по возрастанию

по

возрастанию

12

14

9

8

7

1<6

6>4

6

4

1<4

6<7

4<6

7<12

12>8

8

12

7<8

12<14

8<12

14>9

9

14

12>9

9

12

8<9

Слайд 24

Пусть нужно отсортировать массив А по возрастанию, в котором N элементов

Пусть нужно отсортировать массив А по возрастанию, в котором N элементов

методом Шелла
Вспомогательные переменные
j – номер первого элемента остатка.
i – номер перемещаемого элемента.
M- оптимальный шаг
P– промежуточное значение, используемое для перемещения элементов массива

Постановка задачи

Слайд 25

Начало алгоритма. Шаг 1. M=целая часть N/2 Шаг 2. Пока M

Начало алгоритма.
Шаг 1. M=целая часть N/2
Шаг 2. Пока M<>0 выполнять
Шаг

2.1. i:=M+1
Шаг 2.2. Пока i<=N выполнять
Шаг 2.2.1. P=A[i]
Шаг 2.2.2. j=i-M
Шаг 2.2.3. Пока j>0 и P Шаг 2.2.3.1 A[j+M]=A[j] Шаг 2.2.3.2 j=j-M
Шаг 2.2.4. A[j+M]=P
Шаг 2.2.5. i=i+1
Шаг 2.3. M=целая часть M/2
Конец алгоритма.
Слайд 26

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

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

Слайд 27

Придумана Ч.А.Р. Хоаром (Charles Antony Richard Hoare); В основе – сортировка обменами; Основана на делении массива

Придумана Ч.А.Р. Хоаром (Charles Antony Richard Hoare);
В основе – сортировка обменами;
Основана

на делении массива
Слайд 28

Суть сортировки: Выбирается некоторое значение (x)- барьерный элемент, который определяется округлением

Суть сортировки:
Выбирается некоторое значение (x)- барьерный элемент, который определяется округлением до

целого деления количества сортируемых элементов на 2;
Просматриваем массив, двигаясь слева направо, пока не найдется элемент, больший x
Затем просматриваем его справа налево, пока не найдется элемент, меньший x
Слайд 29

Суть сортировки: Меняем найденные элементы местами. В случае, если не найден

Суть сортировки:

Меняем найденные элементы местами. В случае, если не найден наибольший

или наименьший элементы, местами меняется средний элемент с найденным наибольшим или наименьшим элементом;
Дойдя до середины имеем 2 части массива;
Процесс продолжается для каждой части, пока массив не будет отсортирован
Слайд 30

Быстрая сортировка 8 12 3 7 19 11 4 16 Барьерный

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

8

12

3

7

19

11

4

16

Барьерный элемент

4

3

7

8

12

3

4

Барьерный элемент

8

12

11

19

Барьерный элемент

12

19

16

19

8>7 переносим в правую часть, т. к.


16>7 не переносим, 4<7 поэтому меняем местами 4 и 8

12>7 переносим в правую часть, т. к. 16>7, 8>7,11>7, 19>7 не переносим,
7=7 поэтому меняем местами 7 и 12

4>3

Отсортиро-ванная часть

12>11 переносим в правую часть, т. к.
16>11 не переносим, 8<11 поэтому меняем местами 12 и 8

19>11 переносим в правую часть, т. к. 16>11, 12>11,не переносим,
11=11 поэтому меняем местами 11 и 19

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

19>12 переносим в правую часть, т. к. 16>12,не переносим,
12=12 поэтому меняем местами 12 и 19

19>16

Массив отсортирован по возрастанию

по возрастанию

Слайд 31

Пусть нужно отсортировать массив А по возрастанию, в котором n элементов

Пусть нужно отсортировать массив А по возрастанию, в котором n элементов

быстрым методом
Вспомогательные переменные:
t –конечный элемент массива
m - начальный элемент массива
x – элемент относительно которого перемещаются все остальные элементы.
w – промежуточное значение, используемое для перемещения элементов массива

Постановка задачи