Сортировка выбором. Методы сортировки массивов

Содержание

Слайд 2

Поиск минимального элемента в массиве 5 3 12 2 7 1

Поиск минимального элемента в массиве

5

3

12

2

7

1

23

10

0

1

2

3

4

5

6

7

8

9

K

I

N

N - количество элементов в массиве;
I -

переменная цикла;
K - переменная, в которую записывается индекс (номер) минимального элемента в массиве.
Слайд 3

Поиск минимального элемента в массиве 5 3 12 2 7 1

Поиск минимального элемента в массиве

5

3

12

2

7

1

23

10

0

1

1

3

4

5

6

7

8

9

K

I

N

Индекс первого элемента записывается в переменную K.

2

Слайд 4

Поиск минимального элемента в массиве 5 3 12 2 7 1

Поиск минимального элемента в массиве

5

3

12

2

7

1

23

10

0

1

1

3

4

5

6

7

8

9

K

I

N

Сравниваются элемент с индексом I (текущий элемент

массива) и элемент с индексом К. Индекс меньшего по значению элемента записывается в переменную K.

2

Слайд 5

Поиск минимального элемента в массиве 5 3 12 2 7 1

Поиск минимального элемента в массиве

5

3

12

2

7

1

23

10

0

1

2

3

4

5

6

7

8

9

K

I

N

Сравниваются элемент с индексом I (текущий элемент

массива) и элемент с индексом К. Индекс меньшего по значению элемента записывается в переменную K.

2

Слайд 6

Поиск минимального элемента в массиве 5 3 12 2 7 1

Поиск минимального элемента в массиве

5

3

12

2

7

1

23

10

0

1

2

3

4

5

6

7

8

9

K

I

N

Сравниваются элемент с индексом I (текущий элемент

массива) и элемент с индексом К. Индекс меньшего по значению элемента записывается в переменную K.

2

Слайд 7

Поиск минимального элемента в массиве 5 3 12 2 7 1

Поиск минимального элемента в массиве

5

3

12

2

7

1

23

10

0

1

2

3

4

5

6

7

8

9

K

I

N

Сравниваются элемент с индексом I (текущий элемент

массива) и элемент с индексом К. Индекс меньшего по значению элемента записывается в переменную K.

2

Слайд 8

Поиск минимального элемента в массиве 5 3 12 2 7 1

Поиск минимального элемента в массиве

5

3

12

2

7

1

23

10

0

1

4

3

4

5

6

7

8

9

K

I

N

Сравниваются элемент с индексом I (текущий элемент

массива) и элемент с индексом К. Индекс меньшего по значению элемента записывается в переменную K.

2

Слайд 9

Поиск минимального элемента в массиве 5 3 12 2 7 1

Поиск минимального элемента в массиве

5

3

12

2

7

1

23

10

0

1

4

3

4

5

6

7

8

9

K

I

N

Сравниваются элемент с индексом I (текущий элемент

массива) и элемент с индексом К. Индекс меньшего по значению элемента записывается в переменную K.

2

Слайд 10

Поиск минимального элемента в массиве 5 3 12 2 7 1

Поиск минимального элемента в массиве

5

3

12

2

7

1

23

10

0

1

4

3

4

5

6

7

8

9

K

I

N

Сравниваются элемент с индексом I (текущий элемент

массива) и элемент с индексом К. Индекс меньшего по значению элемента записывается в переменную K.

2

Слайд 11

Поиск минимального элемента в массиве 5 3 12 2 7 1

Поиск минимального элемента в массиве

5

3

12

2

7

1

23

10

0

1

6

3

4

5

6

7

8

9

K

I

N-1

N

Сравниваются элемент с индексом I (текущий элемент

массива) и элемент с индексом К. Индекс меньшего по значению элемента записывается в переменную K.

2

Слайд 12

Поиск минимального элемента в массиве 5 3 12 2 7 1

Поиск минимального элемента в массиве

5

3

12

2

7

1

23

10

0

1

6

3

4

5

6

7

8

9

K

I

N

Сравниваются элемент с индексом I (текущий элемент

массива) и элемент с индексом К. Индекс меньшего по значению элемента записывается в переменную K.

2

Слайд 13

Поиск минимального элемента в массиве 5 3 12 2 7 1

Поиск минимального элемента в массиве

5

3

12

2

7

1

23

10

0

1

6

3

4

5

6

7

8

9

K

I

N

Сравниваются элемент с индексом I (текущий элемент

массива) и элемент с индексом К. Индекс меньшего по значению элемента записывается в переменную K.

2

Слайд 14

Поиск минимального элемента в массиве 5 3 12 2 7 1

Поиск минимального элемента в массиве

5

3

12

2

7

1

23

10

0

1

8

3

4

5

6

7

8

9

K

I

N

Сравниваются элемент с индексом I (текущий элемент

массива) и элемент с индексом К. Индекс меньшего по значению элемента записывается в переменную K.

2

Слайд 15

Поиск минимального элемента в массиве 5 3 12 2 7 1

Поиск минимального элемента в массиве

5

3

12

2

7

1

23

10

0

1

8

3

4

5

6

7

8

9

K

I

N

Сравниваются элемент с индексом I (текущий элемент

массива) и элемент с индексом К. Индекс меньшего по значению элемента записывается в переменную K.

2

Слайд 16

Поиск минимального элемента в массиве 5 3 12 2 7 1

Поиск минимального элемента в массиве

5

3

12

2

7

1

23

10

0

1

8

3

4

5

6

7

8

9

K

I

N

В переменной K записан индекс меньшего по

значению элемента массива.

2

A[K] – минимальный элемент массива

Слайд 17

Описание переменных program minmas; {заголовок программы, не обязателен} TYPE {секция описания

Описание переменных

program minmas; {заголовок программы, не обязателен}
TYPE {секция описания типов}
MASS= array [1..30]

of integer; {объявляется тип}
var {секция описания переменных}
N:1..30; {размер массива }
A: MASS; {массив из N целых чисел}
I:1..30; {переменная цикла }
K:1..30; {индекс минимального элемента}
Слайд 18

Блок формирования массива BEGIN Write(’ N= ’); ReadLn(N); FOR I:=1 TO

Блок формирования массива

BEGIN
Write(’ N= ’);
ReadLn(N);
FOR I:=1 TO N

DO begin Write(’ A[ ’ , I , ’ ]= ’); ReadLn(A[ I ]) end;
Слайд 19

АЛГОРИТМ ПОИСКА индекса минимального элемента в массиве

АЛГОРИТМ ПОИСКА индекса минимального элемента в массиве

Слайд 20

СОРТИРОВКА МАССИВА МЕТОДОМ ВЫБОРА

СОРТИРОВКА МАССИВА МЕТОДОМ ВЫБОРА

Слайд 21

Порядок работы: Разработка, отладка и тестирование программы: Программа должна: Сформировать массив

Порядок работы:

Разработка, отладка и тестирование программы:
Программа должна:
Сформировать массив (ввод данных

с клавиатуры);
Вывести массив на экран для просмотра данных;
Произвести сортировку массива по алгоритму «Метод выбора»;
Вывести массив на экран для просмотра результата.
После того, как Вы убедились, что программа работает правильно
Определить эффективность метода:
Поставить счётчики в программу;
Запустить программу на выполнение;
Снять показания счётчиков на первом входном массиве;
Записать показания счётчиков в бланк лабораторной работы;
Запустить программу и снять показания счётчиков на втором и третьем входных массивах.
Описать дополнительное рабочее поле ОЗУ в бланке лабораторной работы.
Слайд 22

РАЗРАБОТКА АЛГОРИТМА СОРТИРОВКИ МЕТОДОМ ВЫБОРА (массив целых чисел сортируется по не убыванию элементов)

РАЗРАБОТКА АЛГОРИТМА

СОРТИРОВКИ МЕТОДОМ ВЫБОРА (массив целых чисел сортируется по не убыванию

элементов)
Слайд 23

5 3 12 2 7 1 23 10 0 1 2

5

3

12

2

7

1

23

10

0

1

2

3

4

5

6

7

8

9

K

I

N

J

Слайд 24

5 3 12 2 7 1 23 10 0 1 2

5

3

12

2

7

1

23

10

0

1

2

3

4

5

6

7

8

9

K

I

N

J

8

Слайд 25

0 3 12 2 7 1 23 10 5 1 2

0

3

12

2

7

1

23

10

5

1

2

3

4

5

6

7

8

9

K

I

N

J

8

Слайд 26

0 3 12 2 7 1 23 10 5 1 2

0

3

12

2

7

1

23

10

5

1

2

3

4

5

6

7

8

9

K

I

N

J

Слайд 27

6 0 3 12 2 7 1 23 10 5 1

6

0

3

12

2

7

1

23

10

5

1

2

3

4

5

6

7

8

9

K

I

N

J

Слайд 28

6 0 1 12 2 7 3 23 10 5 1

6

0

1

12

2

7

3

23

10

5

1

2

3

4

5

6

7

8

9

K

I

N

J

Слайд 29

0 1 12 2 7 3 23 10 5 1 2

0

1

12

2

7

3

23

10

5

1

2

3

4

5

6

7

8

9

K

I

N

J

Слайд 30

4 0 1 12 2 7 3 23 10 5 1

4

0

1

12

2

7

3

23

10

5

1

2

3

4

5

6

7

8

9

K

I

N

J

Слайд 31

4 0 1 2 12 7 3 23 10 5 1

4

0

1

2

12

7

3

23

10

5

1

2

3

4

5

6

7

8

9

K

I

N

J

Слайд 32

0 1 2 12 7 3 23 10 5 1 2

0

1

2

12

7

3

23

10

5

1

2

3

4

5

6

7

8

9

K

I

N

J

Слайд 33

6 0 1 2 12 7 3 23 10 5 1

6

0

1

2

12

7

3

23

10

5

1

2

3

4

5

6

7

8

9

K

I

N

J

Слайд 34

6 0 1 2 3 7 12 23 10 5 1

6

0

1

2

3

7

12

23

10

5

1

2

3

4

5

6

7

8

9

K

I

N

J

Слайд 35

0 1 2 3 7 12 23 10 5 1 2

0

1

2

3

7

12

23

10

5

1

2

3

4

5

6

7

8

9

K

I

N

J

Слайд 36

8 0 1 2 3 7 12 23 10 5 1

8

0

1

2

3

7

12

23

10

5

1

2

3

4

5

6

7

8

9

K

I

N

J

Слайд 37

8 0 1 2 3 5 12 23 10 7 1

8

0

1

2

3

5

12

23

10

7

1

2

3

4

5

6

7

8

9

K

I

N

J

Слайд 38

0 1 2 3 5 12 23 10 7 1 2

0

1

2

3

5

12

23

10

7

1

2

3

4

5

6

7

8

9

K

I

N

J

Слайд 39

8 0 1 2 3 5 12 23 10 7 1

8

0

1

2

3

5

12

23

10

7

1

2

3

4

5

6

7

8

9

K

I

N

J

Слайд 40

8 0 1 2 3 5 7 23 10 12 1

8

0

1

2

3

5

7

23

10

12

1

2

3

4

5

6

7

8

9

K

I

N

J

Слайд 41

0 1 2 3 5 7 23 10 12 1 2

0

1

2

3

5

7

23

10

12

1

2

3

4

5

6

7

8

9

K

I

N

J

Слайд 42

9 0 1 2 3 5 7 23 10 12 1

9

0

1

2

3

5

7

23

10

12

1

2

3

4

5

6

7

8

9

K

I

N

J

Слайд 43

9 0 1 2 3 5 7 10 23 12 1

9

0

1

2

3

5

7

10

23

12

1

2

3

4

5

6

7

8

9

K

I

N

J

Слайд 44

0 1 2 3 5 7 10 23 12 1 2

0

1

2

3

5

7

10

23

12

1

2

3

4

5

6

7

8

9

K

I

N

J

Слайд 45

8 0 1 2 3 5 7 10 23 12 1

8

0

1

2

3

5

7

10

23

12

1

2

3

4

5

6

7

8

9

K

I

N

J

Если K=J, то обмен не нужно делать.

Слайд 46

0 1 2 3 5 7 10 23 12 1 2

0

1

2

3

5

7

10

23

12

1

2

3

4

5

6

7

8

9

K

N

J

Процесс сортировки завершен за N-1 цикл по переменной J.

Слайд 47

Описание переменных program viborsort; {заголовок программы, не обязателен} TYPE {секция описания

Описание переменных

program viborsort; {заголовок программы, не обязателен}
TYPE {секция описания типов}
MASS= array [1..30]

of integer; {объявляется тип}
var {секция описания переменных}
N:1..30; {размер массива }
A: MASS; {массив из N целых чисел}
I:1..30; {переменная цикла для поиска мин. }
J:1..30; {переменная внешнего цикла}
L:integer; {переменная для обмена}
K:1..30; {индекс минимального элемента}
CS: integer; {счётчик числа сравнений}
CP: integer; {счётчик числа перестановок}
Слайд 48

Блок формирования массива BEGIN Write(’ N= ’); ReadLn(N); FOR I:=1 TO

Блок формирования массива

BEGIN
Write(’ N= ’);
ReadLn(N);
FOR I:=1 TO N

DO begin Write(’ A[ ’ , I , ’ ]= ’); ReadLn(A[ I ]) end;
Слайд 49

Блок печати массива WriteLn; FOR I:=1 TO N DO Write(A[ I ] , ’ ’); WriteLn;

Блок печати массива

WriteLn;
FOR I:=1 TO N DO Write(A[ I

] , ’ ’);
WriteLn;
Слайд 50

3

3

Слайд 51

ОСНОВНАЯ ЧАСТЬ ПРОГРАММЫ FOR J:=1 TO N-1 DO BEGIN K:=J; FOR

ОСНОВНАЯ ЧАСТЬ ПРОГРАММЫ

FOR J:=1 TO N-1 DO
BEGIN
K:=J;
FOR I:=J+1

TO N DO IF A[I] J THEN begin L:=A[K]; A[K]:=A[J]; A[J]:=L; end; END;
Слайд 52

Куда ставить счётчики? CS:=0; CP:=0; FOR J:=1 TO N-1 DO BEGIN

Куда ставить счётчики?

CS:=0; CP:=0; FOR J:=1 TO N-1 DO
BEGIN
K:=J;
FOR I:=J+1

TO N DO begin CS:=CS+1; IF A[I] end; IF k<> J THEN begin L:=A[K]; A[K]:=A[J]; A[J]:=L; CP:=CP+3; end; END; WriteLn(’ CS=’ ,CS); WriteLn(’ CP=’ ,CP);

Обнулить счётчики до начала сортировки

Увеличить на 1 значение счётчика числа сравнений

Увеличить на 3 значение счётчика числа перестановок

Обратите внимание на то, что после добавления оператора в тело цикла с параметром необходимо поставить операторные скобки.

Вывести на экран значения счётчиков
после завершения сортировки

Слайд 53

После завершения сортировки ещё раз вывести на экран значения элементов массива,

После завершения сортировки ещё раз вывести на экран значения элементов массива,

чтобы проверить, что сортировка прошла успешно.

WriteLn;
FOR I:=1 TO N DO Write(A[ I ] , ’ ’); ReadLn;
END. { конец программы}