Презентация, доклад по информатике. Программирование. Методы сортировки массивов. Линейная сортировка.

Содержание

УСЛОВИЯ ИГРЫ Шары с написанными на них числами лежат в последовательных ячейках. Имеется одна пустая вспомогательная ячейка. Робот находится у начала ряда и должен упорядочить шары по возрастанию чисел слева направо. Робот может: сравнить два

Слайд 1МЕТОДЫ СОРТИРОВКИ МАССИВОВ
ЛИНЕЙНАЯ СОРТИРОВКА
Кондраткова Татьяна Алексеевна
ГБОУ Лицей № 82 СПб

МЕТОДЫ СОРТИРОВКИ МАССИВОВЛИНЕЙНАЯ СОРТИРОВКАКондраткова  Татьяна АлексеевнаГБОУ Лицей № 82 СПб

Слайд 2УСЛОВИЯ ИГРЫ
Шары с написанными на них числами лежат в последовательных ячейках.

Имеется одна пустая вспомогательная ячейка. Робот находится у начала ряда и должен упорядочить шары по возрастанию чисел слева направо.
Робот может:
сравнить два соседних числа,
перейти на одну ячейку вправо,
взять один шар во вспомогательную ячейку,
положить шар из вспомогательной ячейки в свободную ячейку ряда,
сдвинуть шар на одну позицию в свободную ячейку ряда,
переместиться в исходное положение к началу ряда.

Когда робот находится в исходном положении, у него зажигается зеленая лампочка, и он начинает работу.
Если робот переложил хотя бы один шар, то зажигается красная лампочка. Робот отключается, если в конечном положении у него горит зеленая лампочка иначе (горит красная лампочка) возвращается к началу ряда и продолжает работу.

УСЛОВИЯ ИГРЫ	Шары с написанными на них числами лежат в последовательных ячейках. Имеется одна пустая вспомогательная ячейка.

Слайд 3ИСПОЛНИТЕЛЬ - РОБОТ
Система команд исполнителя и элементарные действия
сравнить два

соседних числа,
перейти на одну ячейку вправо,
взять один шар во вспомогательную ячейку,
положить шар из вспомогательной ячейки в свободную ячейку ряда,
сдвинуть шар на одну позицию в свободную ячейку ряда,
переместиться в исходное положение к началу ряда.
ИСПОЛНИТЕЛЬ - РОБОТСистема команд исполнителя  и элементарные действия  сравнить два соседних числа,  перейти на

Слайд 4АЛГОРИТМ РАБОТЫ ИСПОЛНИТЕЛЯ



3
2
12
5
7
4
23
10
1
Горит зелёный свет
ИСХОДНОЕ ПОЛОЖЕНИЕ – робот в начале массива.

АЛГОРИТМ РАБОТЫ ИСПОЛНИТЕЛЯ321257423101Горит зелёный светИСХОДНОЕ ПОЛОЖЕНИЕ – робот в начале массива.

Слайд 5АЛГОРИТМ РАБОТЫ ИСПОЛНИТЕЛЯ



3
2
12
5
7
4
23
10
1
Начинается перестановка шаров -
Зажигается красный свет

АЛГОРИТМ РАБОТЫ ИСПОЛНИТЕЛЯ321257423101Начинается перестановка шаров -Зажигается красный свет

Слайд 6АЛГОРИТМ РАБОТЫ ИСПОЛНИТЕЛЯ



3
2
12
5
7
4
23
10
1

АЛГОРИТМ РАБОТЫ ИСПОЛНИТЕЛЯ321257423101

Слайд 7АЛГОРИТМ РАБОТЫ ИСПОЛНИТЕЛЯ



3
2
12
5
7
4
23
10
1

АЛГОРИТМ РАБОТЫ ИСПОЛНИТЕЛЯ321257423101

Слайд 8АЛГОРИТМ РАБОТЫ ИСПОЛНИТЕЛЯ



3
2
12
5
7
4
23
10
1

АЛГОРИТМ РАБОТЫ ИСПОЛНИТЕЛЯ321257423101

Слайд 9АЛГОРИТМ РАБОТЫ ИСПОЛНИТЕЛЯ



3
2
12
5
7
4
23
10
1

АЛГОРИТМ РАБОТЫ ИСПОЛНИТЕЛЯ321257423101

Слайд 10АЛГОРИТМ РАБОТЫ ИСПОЛНИТЕЛЯ



3
2
12
5
7
4
23
10
1

АЛГОРИТМ РАБОТЫ ИСПОЛНИТЕЛЯ321257423101

Слайд 11АЛГОРИТМ РАБОТЫ ИСПОЛНИТЕЛЯ



3
2
12
5
7
4
23
10
1

АЛГОРИТМ РАБОТЫ ИСПОЛНИТЕЛЯ321257423101

Слайд 12АЛГОРИТМ РАБОТЫ ИСПОЛНИТЕЛЯ



3
2
12
5
7
4
23
10
1

АЛГОРИТМ РАБОТЫ ИСПОЛНИТЕЛЯ321257423101

Слайд 13АЛГОРИТМ РАБОТЫ ИСПОЛНИТЕЛЯ



3
2
12
5
7
4
23
10
1

АЛГОРИТМ РАБОТЫ ИСПОЛНИТЕЛЯ321257423101

Слайд 14АЛГОРИТМ РАБОТЫ ИСПОЛНИТЕЛЯ



3
2
12
5
7
4
23
10
1

АЛГОРИТМ РАБОТЫ ИСПОЛНИТЕЛЯ321257423101

Слайд 15АЛГОРИТМ РАБОТЫ ИСПОЛНИТЕЛЯ



3
2
7
5
4
12
10
1
23
Проверка лампочки
Робот дошел до конца (сравнил все пары)

Горит красный

свет
АЛГОРИТМ РАБОТЫ ИСПОЛНИТЕЛЯ327541210123Проверка лампочкиРобот дошел до конца (сравнил все пары)Горит красный свет

Слайд 16АЛГОРИТМ РАБОТЫ ИСПОЛНИТЕЛЯ



3
2
7
5
4
12
10
1
23
Зажечь зелёный свет
Начинается новый проход

АЛГОРИТМ РАБОТЫ ИСПОЛНИТЕЛЯ327541210123Зажечь зелёный светНачинается новый проход

Слайд 17АЛГОРИТМ РАБОТЫ ИСПОЛНИТЕЛЯ



2
1
4
3
5
7
10
12
23
Горит зелёный свет
Проверка лампочки
СОРТИРОВКА ЗАВЕРШЕНА!
Робот дошел до конца (сравнил

все пары)
АЛГОРИТМ РАБОТЫ ИСПОЛНИТЕЛЯ214357101223Горит зелёный светПроверка лампочкиСОРТИРОВКА ЗАВЕРШЕНА!Робот дошел до конца (сравнил все пары)

Слайд 18ФОРМАЛИЗАЦИЯ АЛГОРИТМА
Ограничения, наложенные на действия робота, однозначно приводят к алгоритму метода

линейной сортировки.
Запишите числа исходного ряда на бумаге и опишите алгоритм сортировки используя следующие обозначения:
сравнение чисел - двойная стрелка сверху,
перестановке чисел - двойная стрелка снизу .
Вместо лампочки введите переменную-счетчик, при каждой перестановке переписывайте
ФОРМАЛИЗАЦИЯ АЛГОРИТМАОграничения, наложенные на действия робота, однозначно приводят к алгоритму метода линейной сортировки.Запишите числа исходного ряда на

Слайд 19ФОРМАЛИЗАЦИЯ АЛГОРИТМА
Сортировка происходит за несколько проходов по массиву А (в данном

случае 9 проходов) Пусть N количество элементов в массиве. Флаговая переменная (счётчик) F устанавливается в нуль в начале каждого прохода F:=0 . Переменная цикла I меняется от 1 до N-1 (Цикл с параметром). В цикле сравниваются два соседних элемента (первый и второй, второй и третий,… предпоследний и последний) A[I] и A[I+1]. Если значения элементов стоят не в порядке сортировки, то элементы меняются местами. L дополнительная переменная для обмена. Обмен происходит в три действия: L:=A[I+1]; A[I+1]:=A[I]; A[I]:=L; При каждой перестановке значение переменной F увеличивается на единицу. F:= F+1 (Условный оператор). В конце каждого прохода проверяется значение переменной F. Если F=0, то сортировка завершена, иначе делается ещё один проход (Цикл с постусловием).
ФОРМАЛИЗАЦИЯ  АЛГОРИТМАСортировка происходит за несколько проходов по массиву А (в данном случае 9 проходов) Пусть N

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

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



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

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

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

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

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

Слайд 23Блок формирования массива
BEGIN
Write(’ N= ’);
ReadLn(N);

FOR I:=1 TO N DO begin Write(’ A[ ’ , I , ’ ]= ’); ReadLn(A[ I ]) end;









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

Слайд 24Блок печати массива

WriteLn;

FOR I:=1 TO N DO

Write(A[ I ] , ’ ’);

WriteLn;


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

Слайд 25АЛГОРИТМ ЛИНЕЙНОЙ СОРТИРОВКИ

АЛГОРИТМ ЛИНЕЙНОЙ СОРТИРОВКИ

Слайд 26ОСНОВНАЯ ЧАСТЬ ПРОГРАММЫ
Repeat
F:=0;
FOR I:=1 TO N-1 DO

IF A[I]>A[I+1] THEN begin L:=A[I+1]; A[I+1]:=A[I]; A[I]:=L; F:=F+1; end;
Until F=0;
ОСНОВНАЯ ЧАСТЬ ПРОГРАММЫ Repeat  F:=0;  FOR I:=1 TO N-1 DO     IF

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

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


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

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

Слайд 28Куда ставить счётчики?
CS:=0; CP:=0; Repeat F:=0; FOR I:=1 TO N-1 DO

begin CS:=CS+1; IF A[I]>A[I+1] THEN begin CP:=CP+3; L:=A[I+1]; A[I+1]:=A[I]; A[I]:=L; F:=F+1; end; end; Until F=0; WriteLn(’ CS=’ ,CS); WriteLn(’ CP=’ ,CP);

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


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

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

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

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

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

Слайд 29Внимание! Переменные-счётчики нужны только для проведения эксперимента. Они не влияют на

алгоритм сортировки и во время сортировки не задействованы. Эти переменные не должны учитываться как дополнительная рабочая память.
Внимание!  Переменные-счётчики нужны только для проведения эксперимента.  Они не влияют на алгоритм сортировки и во

Что такое shareslide.ru?

Это сайт презентаций, где можно хранить и обмениваться своими презентациями, докладами, проектами, шаблонами в формате PowerPoint с другими пользователями. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами.


Для правообладателей

Яндекс.Метрика

Обратная связь

Email: Нажмите что бы посмотреть