- •Методы сортировки массивов
- •Метод включения с сохранением упорядоченности (метод прямого включения или сортировка вставками).
- •Метод прямого обмена (метод пузырька).
- •Метод прямого выбора (сортировки посредством выбора) и его модификации
- •Метод поиска минимального элемента
- •Пример выполнения задания на сортировку массива
- •Задания 4.4 на сортировку массивов
Пример выполнения задания на сортировку массива
Программа составлена по условию варианта задания №30 (см. ниже).
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
const
Nmax=12;
type
tMas=array[1..Nmax] of Byte;
var
X:tMas=(50,23,123, 34,125, 54, 231, 3,222, 13, 5,100);
N:Byte=10;
i, iTek, iMax, k:Byte;
begin
(* Закомментировать при отладке
Write('Введите число элементов массива N: ');
ReadLn(N);
WriteLn('Введите элементы массива одной строкой');
for k:=1 to N do
Read(X[k]);
ReadLn;
//*)
i:=1;
repeat
//Поиск индекса iMax максимального элемента
//массива среди элементов с индексами от i до N
iMax:=i;
for iTek:=i+1 to N do
if X[iTek]>X[iMax] then
iMax:=iTek;
//Взаимная перестановка X[i] с X[iMax]
k:=X[i]; X[i]:=X[iMax]; X[iMax]:=k;
//(* Использовать при отладке
//Вывод массива после перестановки элементов X[i] с X[iMax]
for k:=1 to N do
Write(X[k]:5);
WriteLn;
//*)
i:=i+1;
until i=N;
ReadLn;
end.
Задания 4.4 на сортировку массивов
Составить программу упорядочения первых n, n≤12, элементов массива X. Вид сортировки, а также метод сортировки и операторы внешнего и внутреннего циклов, которые следует использовать в программе, указаны для каждого варианта в расположенной ниже таблице. Организовать форматный вывод массива одной строкой в конце каждого шага выполнения работ во внешнем цикле. При отладке использовать начальные значения массива и n.
№ |
Вид сортировки |
Метод сортировки |
Оператор внешнего цикла |
Оператор внутреннего цикла |
1 |
по возрастанию |
прямого включения |
while |
while |
2 |
по убыванию |
выбора максимального |
for to |
for to |
3 |
по возрастанию |
выбора минимального |
for to |
for downto |
4 |
по убыванию |
выбора индекса максимального |
while |
for downto |
5 |
по возрастанию |
выбора индекса минимального |
for downto |
while |
6 |
по убыванию |
прямого обмена (пузырька) |
repeat |
repeat |
7 |
по возрастанию |
модифицированного прямого обмена (пузырька) |
while |
for downto |
8 |
по убыванию |
прямого включения |
for to |
while |
9 |
по возрастанию |
выбора максимального |
for to |
while |
10 |
по убыванию |
выбора минимального |
for downto |
for to |
11 |
по возрастанию |
выбора индекса максимального |
for downto |
for to |
12 |
по убыванию |
выбора индекса минимального |
for to |
repeat |
13 |
по возрастанию |
прямого обмена (пузырька) |
for downto |
while |
14 |
по убыванию |
модифицированного прямого обмена (пузырька) |
repeat |
for downto |
15 |
по возрастанию |
прямого включения |
for downto |
while |
16 |
по убыванию |
выбора максимального |
for downto |
for downto |
17 |
по возрастанию |
выбора минимального |
for to |
repeat |
18 |
по убыванию |
выбора индекса максимального |
for to |
for to |
19 |
по возрастанию |
выбора индекса минимального |
while |
repeat |
20 |
по убыванию |
прямого обмена (пузырька) |
for downto |
for to |
21 |
по возрастанию |
прямого включения |
repeat |
while |
22 |
по убыванию |
выбора максимального |
for to |
for downto |
23 |
по возрастанию |
выбора минимального |
for downto |
while |
24 |
по возрастанию |
выбора индекса максимального |
for downto |
for downto |
25 |
по убыванию |
выбора индекса минимального |
repeat |
while |
26 |
по возрастанию |
прямого обмена (пузырька) |
for to |
for downto |
27 |
по убыванию |
модифицированного прямого обмена (пузырька) |
repeat |
for to |
28 |
по возрастанию |
выбора индекса минимального |
for to |
for to |
29 |
по возрастанию |
модифицированного прямого обмена (пузырька) |
while |
repeat |
30 |
по убыванию |
выбора индекса максимального |
repeat |
for to |