冬雪雪冬 发表于 2017-8-5 14:19:59

冒泡排序 - 阶段性上机实践(小结)03 - 零基础入门学习Delphi018

又到了上机练习了。本课是做一个冒泡排序,自然是使用数组了。
冒泡的算法很简单,是排序中最简单最容易理解的,也是最慢的。需要两层循环,先将第一个元素依次与第二个的比较,如果小则与后面的交换,直至第n个,然后做1~n-1,再1~n-2,直至排序完成。
界面上建立一个edit用以输入数值,一个button将edit的数值放入数组,并显示在lable1上,依次输入完毕,按button2排序,并显示在label2上。小甲鱼的程序是拍成从大到小的,再反序输出,我简化了一下,直接从小到大排序。
implementation

{$R *.dfm}
Var
n: Integer = 0;

Num: Array of Integer;
procedure TForm1.Button1Click(Sender: TObject);
begin
Button2.Enabled:= True;
Num:= StrToInt(Edit1.Text);
Label1.Caption:= Label1.Caption + Edit1.Text + ' ';
Edit1.Text:= '';
n := n + 1;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
i, j, temp: Integer;
begin
n:= n -1;
for i:= 0 to n - 1 do
    for j:= 0 to n - i - 1 do
      if Num > Num then
      begin
          temp := Num;
          Num:= Num;
          Num:= temp;
      end;
for i:= 0 to n do
    Label2.Caption:= Label2.Caption + IntToStr(Num) + ' ';
Edit1.Enabled:= False;
Button1.Enabled:= False;
end;



不多太少 发表于 2018-2-25 08:49:35

看了好几遍 终于弄懂了
页: [1]
查看完整版本: 冒泡排序 - 阶段性上机实践(小结)03 - 零基础入门学习Delphi018