Версия для печати

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

Оцените материал
(1 Голосовать)

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

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

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

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

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

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

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;  
Прочитано 8061 раз