Простые алгоритмы сортировки. 2 Сортировка Сортировка – это расстановка элементов массива в заданном порядке (по возрастанию, убыванию, последней цифре,

Презентация:



Advertisements
Похожие презентации
Программирование на языке Паскаль Урок Сортировка массивов Рыжикова С. В. Учитель информатики МОУ СОШ 2 г. Волжского Волгоградской обл.
Advertisements

1 Программирование на языке Паскаль Часть II Тема 4. Сортировка массивов © К.Ю. Поляков,
1 Программирование на языке Паскаль Тема 4. Сортировка массивов.
Алгоритмы сортировки. 2 Сортировка Сортировка – это расстановка элементов массива в заданном порядке (по возрастанию, убыванию, последней цифре, сумме.
К.Ю. Поляков, Е.А. Ерёмин, 2013 Программирование на языке Паскаль § 64. Сортировка 1.
К.Ю. Поляков, Е.А. Ерёмин, 2013 Программирование на языке Паскаль § 64. Сортировка 1.
Обработка м а ссивов ГБОУ СОШ Поиск максимального ( минимального ) элементов. 2. Поиск элементов по заданному признаку. 1. Сложение элементов.
Классическими примерами для демонстрации возможностей массивов являются задачи сортировки и поиска.
Сортировка массивов Что изменилось? ЧТО ДАЛЬШЕ ? Поменяем местами голубой и лиловый прямоугольники.
Тема: « Вставка- удаление элементов массива » :18:06.
1 Программирование на языке Паскаль Максимальный элемент массива.
Методы сортировки массива. Сортировкой или упорядочением массива называется расположение его элементов по возрастанию (или убыванию). Если не все элементы.
Методы сортировки массива Урок в 9 классе. Сортировка – это процесс упорядочивания набора данных одного типа по возрастанию или убыванию значения какого-либо.
Основные алгоритмы работы с одномерными массивами (поиск и сортировка) 8 класс 1.
PROGRAM example1; const m=100; var a : ARRAY [1.. m] of INTEGER; i,k,n,q : INTEGER; BEGIN readln (n); randomize; WRITELN('Полученный массив:' ); FOR i.
1 Программирование на языке Паскаль Обработка массивов.
Линейные (одномерные) массивы. Линейным массивом можно назвать совокупность одинаковых компонент, имеющим один индекс. I12345 A[i]
Сортировки массива в Pascal ABC.. Сделаем из мягкой проволоки рамку размером в любое произвольное яблоко, т. о. мы получили ЭТАЛОН.
1 Программирование на языке Паскаль Тема 2. Максимальный элемент массива.
Сортировка одномерного массива Учитель информатики Александрова Т.П.
Транксрипт:

Простые алгоритмы сортировки

2 Сортировка Сортировка – это расстановка элементов массива в заданном порядке (по возрастанию, убыванию, последней цифре, сумме делителей, …). Задача: переставить элементы массива в порядке возрастания. Алгоритмы: сортировка обменом – «пузырьковая» сортировка выбором сортировка вставками

3 Метод пузырька Идея – пузырек воздуха в стакане воды поднимается со дна вверх. Для массивов – самый маленький ("легкий") элемент перемещается вверх ("всплывает") начиная снизу, сравниваем два соседних элемента; если они стоят "неправильно", меняем их местами за 1 проход по массиву один элемент (самый маленький) становится на свое место ый проход 2-ой проход 3-ий проход Для сортировки массива из N элементов нужен N-1 проход (достаточно поставить на свои места N-1 элементов).

Программная реализация алгоритма Program C; uses crt; {пузырьковая сортировка} var a:array [1..30] of integer; i,d,l:integer; begin clrscr; randomize; writeln ('исходный массив'); for i:= 1 to 30 do begin a[i]:=random(10); write (a[i],' '); end; writeln; for l:=30 downto 2 do for i:=1 to l-1 do if a[i]>a[i+1] then begin d:=a[i]; a[i]:=a[i+1]; a[i+1]:=d; end; writeln('новый отсортированный массив'); for i:=1 to 30 do write (a[i],' '); readkey; end. исходный массив новый отсортированный массив

5 Метод выбора Идея: найти минимальный элемент и поставить на первое место (поменять местами с A[1] ) из оставшихся найти минимальный элемент и поставить на второе место (поменять местами с A[2] ), и т.д

Программная реализация алгоритма Program C; {сортировка выбором} uses crt; var b,a:array [1..30] of integer; i,h,k,d,l:integer; begin clrscr; randomize; writeln ('исходный массив'); for i:= 1 to 30 do begin a[i]:=random(10); write (a[i],' '); end; writeln; for l:=1 to 29 do begin k:=30-l+1; h:=k; for i:=1 to 30-l do if (a[i]>a[h]) then h:=i; d:=a[k]; a[k]:=a[h]; a[h]:=d; end; writeln('новый отсортированный массив'); for i:=1 to 30 do write (a[i],' '); readkey; end. исходный массив новый отсортированный массив

Сортировка вставками Идея : основана на внедрении в отсортированную часть массива элемента следующего за этой частью, если он удовлетворяет условию сортировки. на первом шаге сортировки второй элемент сравнивается с первым, на втором шаге третий элемент сравнивается с двумя первыми и т. д. среди уже отсортированных i-1 элементов массива вставляют i-й элемент без нарушения порядка, т. е. при вставке i-го элемента на j-е место (j j и <i увеличивают свой номер на единицу. отсортированная часть массива

Программная реализация алгоритма Program C; {сортировка вставками} uses crt; var a:array [1..30] of integer; i,h,d,l:integer; begin clrscr; randomize; writeln ('исходный массив'); for i:= 1 to 30 do begin a[i]:=random(10); write (a[i],' '); end; writeln; for l:=2 to 30 do begin d:=a[l]; h:=1; while d>a[h] do h:=h+1; for i:=l downto h+1 do a[i]:=a[i-1]; a[h]:=d; end; writeln('новый отсортированный массив'); for i:=1 to 30 do write (a[i],' '); readkey; end. исходный массив новый отсортированный массив

9 Задания 1 Заполнить массив из 10 элементов случайными числами в интервале [0..100] и отсортировать его по последней цифре. Пример: Исходный массив: Результат: Заполнить массив из 10 элементов случайными числами в интервале [0..100] и отсортировать первую половину по возрастанию, а вторую – по убыванию. Пример: Исходный массив: Результат: решение задачи

Program gr2; uses crt; {используем пузырьковую сортировку} var w:array [1..10] of byte; i,k,h:byte; begin clrscr; randomize; writeln ('исходный массив'); for i:= 1 to 10 do begin w[i]:=random(101); write (w[i],' '); end; writeln; for k:=10 downto 2 do for i:=1 to k-1 do if w[i] mod 10 > w[i+1] mod 10 then begin h:=w[i]; w[i]:=w[i+1]; w[i+1]:=h; end; writeln('полученный массив'); for i:=1 to 10 do write (w[i],' '); Readkey; end. Решение задачи 1 исходный массив полученный массив

Program gr3; uses crt; {используем пузырьковую сортировку} var d:array [1..10] of byte; i,k,h:byte; begin clrscr; randomize; writeln ('исходный массив'); for i:= 1 to 10 do begin d[i]:=random(101); write (d[i],' '); end; writeln; for k:=5 downto 2 do for i:=1 to k-1 do if d[i]>d[i+1] then begin h:=d[i]; d[i]:=d[i+1]; d[i+1]:=h; end; for k:=10 downto 7 do for i:=6 to k-1 do if d[i]<d[i+1] then begin h:=d[i]; d[i]:=d[i+1];d[i+1]:=h; end; writeln('полученный массив'); for i:=1 to 10 do write (d[i],' '); Readkey; end. исходный массив полученный массив Решение задачи 2