Сортировка массива методом прямого выбора
Материал из DRKB
Алгоритм сортировки массива по возрастанию методом прямого выбора может быть представлен так:
- Просматривая массив от первого элемента, найти минимальный элемент и поместить его на место первого элемента, а первый - на место минимального.
- Просматривая массив от второго элемента, найти минимальный элемент и поместить его на место второго элемента, а второй - на место минимального.
- И так далее до предпоследнего элемента.
Ниже представлена программа сортировки массива целых чисел по возрастанию
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]);
Label2.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 + 'Maccив отсортирован.';
end;
Source: http://delphiworld.narod.ru/
ID: 04172