Сортировка массива
Под сортировкой массива подразумевается процесс перестановки элементов массива, с целью размещения элементов массива в определенном порядке.
Например, для целых чисел А после сортировки по возрастанию должно выполняться условие:
A[1] A[2] A[3] . . . A[size], где size – верхний индекс
Алгоритм сортировки:
1. Просмотреть массив от 1 элемента, найти min элемент и поместить его на место 1 элемента, а 1-й на место min.
2. Просмотреть массив от 2 элемента, найти min элемент и поместить его на место 2 элемента, а 2-й на место min
3. И так далее до последнего элемента.
Элементы массива А
A[ 1 ]= 2
A[ 2 ]= 6
A[ 3 ]= -5
A[ 4 ]= 3
A[ 5 ]= 20
A[ 6 ]= -10
A[ 7 ]= 8
A[ 8 ]= 0
A[ 9 ]= 9
A[ 10 ]= -2
Сортировка массива
-10 6 -5 3 20 2 8 0 9 -2
-10 -5 6 3 20 2 8 0 9 -2
-10 -5 -2 3 20 2 8 0 9 6
-10 -5 -2 0 20 2 8 3 9 6
-10 -5 -2 0 2 20 8 3 9 6
-10 -5 -2 0 2 3 8 20 9 6
-10 -5 -2 0 2 3 6 20 9 8
-10 -5 -2 0 2 3 6 8 9 20
-10 -5 -2 0 2 3 6 8 9 20
Отсортированный массив
-10 -5 -2 0 2 3 6 8 9 20
Задача3. Отсортировать массив целых чисел по возрастанию.
program
Example7; {$APPTYPE CONSOLE} uses SysUtils; const N=10; var A
: array[1..N]
of
integer; i
: byte; //номер элемента от
которого ведется поиск min j
: byte; //номер элемента,
сравниваемого с минимальным k
: byte; //индекс для ввода и
вывода
min : integer;
//минимальный элемент
buf: integer;
//буфер, используемый при обмене элементов begin
Writeln('Vvedite massive'); //ввод
массива
for k :=
1 to N do begin Write( 'A[ ' ,
k , ' ]= ' ); Readln( A [ k
] );
end;
Writeln;
Writeln('Sortirovka massive'); //сортировка
массива
for i:=1 to
N-1 do
begin
min:=i;
//поиск минимального элемента
for
j:=i+1 to
N do
if
A[ j ]<A[min] Then
min:=j;
//поменять местами
buf:=A[ i ];
// A[min] и A[ i ],
A[ i
]:=A[min]; // используя буфер
A[min]:=buf;
for
k:=1 to N
do
write(A[ k ],' ');
Writeln; //вывод промежуточного
состояния
end;
Writeln; //вывод
отсортированного массива
Writeln('Massive
otsortirovan');
for
k:=1 to N
do
Write(A[ k ], ' ');
Readln end.