Сортировка массива методом прямого выбора
01.01.2007
Алгоритм сортировки массива по возрастанию методом прямого выбора может быть представлен так:
Просматривая массив от первого элемента, найти минимальный элемент и поместить его на место первого элемента, а первый — на место минимального.
Просматривая массив от второго элемента, найти минимальный элемент и поместить его на место второго элемента, а второй — на место минимального.
И так далее до предпоследнего элемента.
Ниже представлена программа сортировки массива целых чисел по возрастанию
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;
DelphiWorld 6.0