Bubble sort algorithm example from TThread demo of Delphi 5:
Sorting an array of Integer:
procedure TBubbleSort.Sort(var A: array of Integer); var I, J, T: Integer; begin for I := High(A) downto Low(A) do for J := Low(A) to High(A) - 1 do if A[J] > A[J + 1] then begin VisualSwap(A[J], A[J + 1], J, J + 1); T := A[J]; A[J] := A[J + 1]; A[J + 1] := T; if Terminated then Exit; end; end;
Sorting a TStringList ( It's recommended that you use the TStringList.Sort procedure, since it is a Quicksort implementation which is faster):
function BubbleSort( list: TStringList ): TStringList; var i, j: Integer; temp: string; begin // bubble sort for i := 0 to list.Count - 1 do begin for j := 0 to ( list.Count - 1 ) - i do begin // Condition to handle i=0 & j = 9. j+1 tries to access x[10] which // is not there in zero based array if ( j + 1 = list.Count ) then continue; if ( list.Strings[j] > list.Strings[j+1] ) then begin temp := list.Strings[j]; list.Strings[j] := list.Strings[j+1]; list.Strings[j+1] := temp; end; // endif end; // endwhile end; // endwhile Result := list; end;
Code Snippets | |
---|---|
Databases • Files and I/O • Forms/Windows • Graphics • Networking • Math and Algorithms • Miscellaneous • Multimedia • System • VCL |