unit Unit3;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type
TForm3 = class(TForm)
Button1: TButton;
Memo1: TMemo;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
B:ARRAY[1..6] OF INTEGER=(12,8,10,14,6,2);
implementation
{$R *.dfm}
procedure sort_Bubble(var a:array of integer);
var
i,j,tmp:integer;
begin
for I := Low(a) to High(a)-1 do
for j := High(a) downto i+1 do
if a[j]>a[j-1] then
begin
tmp:=a[j-1] ;
a[j-1]:=a[j] ;
a[j] :=tmp
end;
end;
procedure QSort(Var a:array of Integer) ;
procedure QuickSort(var a: array of Integer;iLo,iHi:integer);
var
LO:integer; //左侧下标
Hi:integer; //右侧下标
Mid:integer; //中间值,基数值
TEMP:integer; //临时
begin
Lo:=ILo;
Hi:=Ihi;
Mid:=a[(Lo+Hi) div 2]; //==10
Repeat
while a[lo]<mid do
inc(Lo) ;
while a[hi]>mid do
dec(Hi) ;
if lo<=hi then
begin
temp:=a[lo];
a[lo]:=a[hi];
a[hi]:=temp;
inc(lo);
dec(hi);
end;
Until Lo>Hi ;
if Hi>Ilo then quicksort(a,ilo,hi) ;
if lo<ihi then quicksort(a,lo,ihi );
end;
begin
QuickSort (a,Low(a),high(a)) ;
end ;
procedure TForm3.Button1Click(Sender: TObject);
var
i:integer;
begin
sort_Bubble (b) ;
for I := Low(b) to High(b) do
memo1.Lines.Add(b[i].ToString )
end;
procedure TForm3.Button2Click(Sender: TObject);
var
i:integer;
begin
QSort(B);
for I := Low(b) to High(b) do
memo1.Lines.Add(b[i].ToString )
end;
end.