SortU.pas
上传用户:psxgmh
上传日期:2013-04-08
资源大小:15112k
文件大小:1k
源码类别:

Delphi/CppBuilder

开发平台:

Delphi

  1. unit SortU;
  2. interface
  3. uses
  4.   Classes;
  5. type
  6.   TSortThread = class(TThread)
  7.   private
  8.     FSortArray: array of integer;
  9.   protected
  10.     procedure Execute; override;
  11.     procedure Sort;
  12.   public
  13.     constructor Create(CreateSuspended: Boolean;var SortArray: array of Integer);
  14.   published
  15.   end;
  16. implementation
  17. constructor TSortThread.Create(CreateSuspended: Boolean;var SortArray: array of Integer);
  18. begin
  19.   FSortArray := @SortArray;
  20.   FreeOnTerminate := True;
  21.   inherited Create(CreateSuspended);
  22. end;
  23. {当线程开始时,Execute方法将被调用。}
  24. procedure TSortThread.Execute;
  25. begin
  26.   FreeOnTerminate := True;
  27.   Sort;
  28. end;
  29. {下面实现了冒泡法排序}
  30. procedure TSortThread.Sort;
  31. var
  32.   I, J, T: Integer;
  33. begin
  34.   for I := High(FSortArray) downto Low(FSortArray) do
  35.     for J := Low(FSortArray) to High(FSortArray) - 1 do
  36.       if FSortArray[J] > FSortArray[J + 1] then
  37.       begin
  38.         T := FSortArray[J];
  39.         FSortArray[J] := FSortArray[J + 1];
  40.         FSortArray[J + 1] := T;
  41.         if Terminated then Exit;
  42.       end;
  43. end;
  44. end.