Сортировка массива методом прямого выбора
Алгоритм сортировки массива по возрастанию методом прямого выбора может быть представлен так:
Просматривая массив от первого элемента, найти минимальный элемент и поместить его на место первого элемента, а первый — на место минимального.
Просматривая массив от второго элемента, найти минимальный элемент и поместить его на место второго элемента, а второй — на место минимального.
И так далее до предпоследнего элемента.
Ниже представлена программа сортировки массива целых чисел по возрастанию
procedure TForm1.ButtonlClick(Sender: TObject);
const
SIZE = 10;
var
a: array[1..SIZE] of integer;
min: integer; { номер минимального элемента в части массива от i до верхней границы массива } j: integer; { номер элемента, сравниваемого с минимальным } buf: integer; { буфер, используемый при обмене элементов массива } i, k: integer; begin
// ввод массива for i := l to SIZE do
a[i] := StrToInt(StringGridl.Cells[i - 1, 0]); Iabel2.caption := '';
for i := l to SIZE - 1 do
begin { поиск минимального элемента в части массива от а[1] до a[SIZE]} min := i; for j := i + l to SIZE do
if a[j] < a[min] then
min := j;
{ поменяем местами a [min] и a[i] } buf := a[i]; a[i] := a[min];
a[min] := buf;
{ вывод массива } for k := l to SIZE do
Label2.caption := label2.caption + ' ' + IntTostr(a[k]);
Label2.caption := label2.caption + #13;
end;
Label2.caption := label2.caption + #13 + 'MaccMB отсортирован.'; end;
|