Sorting algorithms/Bubble sort: Difference between revisions

Content added Content deleted
Line 652: Line 652:
TArray = array[0..15] of TItem; // static array
TArray = array[0..15] of TItem; // static array
{$ENDIF}
{$ENDIF}

{$DEFINE TESTSORTED}


procedure BubbleSort(var A: TArray);
procedure BubbleSort(var A: TArray);
var
var
Item: TItem;
Item: TItem;
I, J: Integer;
K, L, J: Integer;
{$IFDEF TESTSORTED}
Sorted: Boolean;
{$ENDIF}


begin
begin
for I:= Low(A) + 1 to High(A) do begin
L:= Low(A) + 1;
K:= High(A);
{$IFDEF TESTSORTED}
repeat
Sorted:= True;
for J:= High(A) downto L do begin
{$ENDIF}
for J:= High(A) downto I do begin
if A[J - 1] > A[J] then begin
if A[J - 1] > A[J] then begin
Item:= A[J - 1];
Item:= A[J - 1];
A[J - 1]:= A[J];
A[J - 1]:= A[J];
A[J]:= Item;
A[J]:= Item;
K:= J;
{$IFDEF TESTSORTED}
Sorted:= False;
{$ENDIF}
end;
end;
end;
end;
L:= K + 1;
{$IFDEF TESTSORTED}
until L > High(A);
if Sorted then Break;
{$ENDIF}
end;
end;
end;