冒泡算法的例子

来源:互联网 发布:淘宝的需求分析和设计 编辑:程序博客网 时间:2024/05/19 00:56
procedure TForm1.BaseMaoPao;
var
  Temp:Integer;
  a:array[0..9] of Integer;
  i,j,times:integer;
  Str:string;
begin
  a[0]:=9;
  a[1]:=6;
  a[2]:=4;
  a[3]:=2;
  a[4]:=5;
  a[5]:=1;
  a[6]:=7;
  a[7]:=0;
  a[8]:=8;
  a[9]:=3;
  Str:='';
  for I := 0 to Length(a)-1 do
  begin
    Str:=Str+' '+IntToStr(a[I]);
  end;
  mmo1.Lines.Add(Str);
  for I := Length(a) downto 0  do //递减循环
  begin
    for J := 0 to i do //递增循环
    begin
      if a[j]>a[I] then
      begin
        Temp:=a[I];
        a[I]:=a[J];
        a[j]:=temp;
      end;
    end;
  end;
  Str:='';
  for I := 0 to Length(a)-1 do
  begin
    Str:=Str+' '+IntToStr(a[I]);
  end;
  mmo1.Lines.Add(Str);
  mmo1.Lines.Add('最小值:'+IntToStr(Low(a)));//获得数组的最小下标值
  mmo1.Lines.Add('最大值:'+IntToStr(High(a)));//获得数组的最大上标值
end;


procedure TForm1.btn1Click(Sender: TObject);
begin
  SetRank();
  BaseMaoPao();
end;


procedure TForm1.SetRank;
var
  Temp:Integer;
  a:array of Integer;
  i,j:integer;
  Str:string;
begin
  SetLength(a,8);
  a[0]:=StrToInt(ed1.Text);
  a[1]:=StrToInt(ed2.Text);
  a[2]:=StrToInt(ed3.Text);
  a[3]:=StrToInt(ed4.Text);
  a[4]:=StrToInt(ed5.Text);
  a[5]:=StrToInt(ed6.Text);
  a[6]:=StrToInt(ed7.Text);
  a[7]:=StrToInt(ed8.Text);
  Str:='';
  for I := 0 to Length(a)-1 do
  begin
    Str:=Str+' '+IntToStr(a[I]);
  end;
  mmo1.Lines.Add(Str);
  for I := Length(a)-1 downto 0 do
  begin
    for j := 0 to I do
    begin
      if a[J]>a[I] then
      begin
        Temp:=a[I];
        a[I]:=a[j];
        a[J]:=Temp;
      end;
    end;
  end;
  Str:='';
  for I := 0 to Length(a)-1 do
  begin
    Str:=Str+' '+IntToStr(a[I]);
  end;
  mmo1.Lines.Add(Str);
  ed_Max.Text:=IntToStr(High(a));
  ed_Min.Text:=IntToStr(Low(a));
end;
0 0
原创粉丝点击