Как отсортировать массив методом прямого выбора? - Free Pascal
Формулировка задачи:
Мне нужно заполнить массив из 8 элементов случайными числами от -8 до 12 и отсортировать методом прямого выбора.
Пожалуйста помогите, как это методом прямого выбора? Можно код? Заранее спасибо.
Решение задачи: «Как отсортировать массив методом прямого выбора?»
textual
Листинг программы
program qqq;
const n=8;
var a:array[1..n] of integer;
i,x,j,buf:integer;
begin
randomize;
writeln('Исходный массив');
for i:=1 to n do
begin
a[i]:=-8+random(21);
write(a[i]:4);
end;
writeln;
for i:=1 to n-1 do
begin
x:=i;
for j:=i+1 to n do
if a[j]>a[x] then x:=j;//это по убыванию, по возрастанию сменить > на <
buf:=a[i];
a[i]:=a[x];
a[x]:=buf;
end;
writeln('Отсортированный массив');
for i:=1 to n do
write(a[i]:4);
readln;
end.
Объяснение кода листинга программы
- Объявлены константа
nравная 8 и переменныеa,i,x,j,bufтипаinteger. - В цикле выводятся элементы исходного массива
aс помощью функцииwrite. - В цикле происходит сортировка массива
aметодом прямого выбора. - Для этого, в каждой итерации, находится минимальный элемент и меняется его местоположение с текущим элементом.
- В итоге, после завершения цикла, массив
aбудет отсортирован по убыванию. - Выводятся отсортированные элементы массива
aс помощью функцииwrite. - Программа ожидает ввода с помощью функции
readln.