Сортировка массива. Сортировка методом прямого выбора.
Процедура сортировки, текст которой приведен в листинге 5.9, запускается нажатием кнопки Сортировка (Button1). Значения элементов массива вводятся из ячеек компонента StringGrid1. После выполнения очередного цикла поиска минимального элемента в части массива процедура выводит массив в поле метки (Label2).
Листинг 5.9. Сортировка массива простым выбором.
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(StringGrid1.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;
На рис. 5.16 приведено диалоговое окно программы после завершения процесса сортировки.
Рис. 5.16. Диалоговое окно программы Сортировка массива