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

Previous  Top  Next

    
 

Алгоритм сортировки массива по возрастанию методом прямого выбора может быть представлен так:

 

Просматривая массив от первого элемента, найти минимальный элемент и поместить его на место первого элемента, а первый — на место минимального.

Просматривая массив от второго элемента, найти минимальный элемент и поместить его на место второго элемента, а второй — на место минимального.

И так далее до предпоследнего элемента.

Ниже представлена программа сортировки массива целых чисел по возрастанию

Code:

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;

 

©Drkb::04172

http://delphiworld.narod.ru/

DelphiWorld 6.0