冒泡排序,快速排序

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.
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值