Сортировка массива методом прямого выбора

Материал из 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