Помогите,пожалуйста,очень срочно! Написать программу организующую сортировку выбора. Процедуру использовать только для сортировки!
Помогите,пожалуйста,очень срочно! Написать программу организующую сортировку выбора. Процедуру использовать только для сортировки!
Ответ(ы) на вопрос:
Гость
const n = 10;
type arr=array[1..n] of byte;
procedure sort(var a:arr);
var i, j, max, imax:integer;
begin
j := n;
while j > 1 do begin
max := a[1];
imax := 1;
for i := 2 to j do
if a[i] > max then begin
max := a[i];
imax := i
end;
a[imax] := a[j];
a[j] := max;
j := j - 1
end;
end;
var
a: arr; i: byte;
begin
Randomize;
writeln('Исходный массив:');
for i := 1 to n do
begin
a[i] := random(256);
write(a[i]:4)
end;
writeln;
sort(a);
writeln('Отсортированный массив:');
for i := 1 to n do write(a[i]:4);
writeln;
end.
Пример:
Исходный массив:
119 239 156 143 34 184 93 19 218 120
Отсортированный массив:
19 34 93 119 120 143 156 184 218 239
Гость
procedure Sort(arr : array of integer);
var
i, j, temp, len, min : integer;
begin
len := length(arr);
for j := 0 to len - 2 do
begin
min := j;
for i := j + 1 to len - 1 do
if arr[i] < arr[min] then
min := i;
if min > j then
begin
temp := arr[j];
arr[j] := arr[min];
arr[min] := temp;
end;
end;
end;
const
N = 10; // Количество элементов массива
Max = 100; // Максимальное число в массиве
var
arr : array of integer;
i : integer;
begin
//Устанавливаем длину массива
SetLength(arr, N);
for i := 0 to N - 1 do
arr[i] := random(Max);
//Выводим исходный массив
for i := 0 to N - 1 do
write(arr[i], ' ');
writeln();
Sort(arr);
//Выводим отсортированный массива
for i := 0 to N - 1 do
write(arr[i], ' ');
writeln();
end.
Не нашли ответ?
Похожие вопросы