Пример. Ускоренная пузырьковая сортировка
Program SortUsk;
Const
Nmax = 100;
Var
X : Array [1..Nmax] Of Real;
A : Real;
P : Boolean;
L, K, I, N : Integer;
Begin
Writeln('Введите количество чисел');
Readln(n);
Writeln('Введите массив чисел');
For i := 1 To n Do Read(X[i]);
P := True; {Перестановка есть}
K := 1; {Номер просмотра}
While P Do
Begin
L:=0; {Кол. перестановок}
For i := 1 To n-k Do
If X[i] > X[i+1] Then
Begin
A := X[i];
X[i]:=X[i+1];
X[i+1]:=A;
L:=L+1
End;
If L=0 Then P:=False;
k:=k+1;
End;
Writeln('Отсортированный массив чисел');
For i := 1 To n Do
Write(X[i]);
End.