Как отсортировать массив методом прямого выбора? - 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
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д