нням - до кінця масиву (тонуть). Тому даний метод сортування обміном іноді називають методом В«бульбашкиВ». Цей процес повторюється стільки разів, скільки елементів у масиві, мінус одиниця. [3]
На рис. 1.1 цифрою 1 позначено початковий стан масиву і перестановки на першому проході, цифрою 2 - стан після перестановок на першому проході і перестановки на другому проході, і т.д.
В
Рис. 1.1. Сортування перестановками
Процедура сортування, запускається натисканням кнопки Сортування (Button1). Значення елементів масиву вводяться з осередків компонента stringGrid1. Під час сортування, після виконання чергового циклу обмінів елементів масиву, програма виводить масив в полі мітки Label2.
Лістинг 1.1. Сортування масиву методом обміну [3]
procedure TForm1. Button1Click (Sender: TObject);
const = 5;
var : array [1 .. SIZE] of integer;
k: integer;// поточний елемент масиву: integer;// індекс для введення і виведення масиву: boolean;// TRUE, якщо в поточному циклі були обміни: integer;// буфер для обміну елементами масиву
begin
// вводмассіва
for i: = 1 to SIZE do [i]: = StrToInt (StringGrid1. Cells [i-1, 0]); span>
label2.caption: ='';
// сортування масиву repeat: = FALSE;// нехай в поточному циклі немає обмінів
for k: = l to SIZE-1 do a [k]> a [k + l] then
begin // обміняємо k-й і k +1- й елементи
buf: = a [k]; a [k]: = a [k + l]; a [k + l]: = buf;: = TRUE;
end;
// виводмассіва
for i: = l to SIZE do . caption: = label2.caption + '' + IntTostr (a [i]);. caption: = label2.caption + # 13;
untilnot changed;// еслінебилообменов, значить
// массівотсортірован.caption: = label2.caption
+ # 13 + 'Maccів відсортований.';
end;
Слід зазначити, що максимальне необхідну кількість циклів перевірки сусідніх елементів маси...