每天一个算法_插入排序

本文介绍了一段使用Delphi实现的插入排序算法代码,包括定义函数、数组操作以及界面交互演示,旨在方便查找和复用。

打算每天写一个小算法,也为以后查找起来更方便一些。(均为我自己运行能通过的代码,以便对delphi不太熟悉的人直接粘贴,即可运行起来,呵呵)

插入排序:定义个函数:

(*从第2个开始,每次与前面的X个已排序好的数字比较*)
procedure TForm1.InsertSort;
var
  i,j,k,n: Integer;
begin
  for i := 2 to Length(A) do
    begin
      k := A[i];
      j := i - 1;
      while ((j > 0) and (A[j] > k)) do
        begin
          A[j + 1] := A[j];
          Dec(j);
        end;
      A[j + 1] := k;
    end;
end;

顺带说一下,这个过程里面定义的数组A,如果你在过程里面定义的话,不能直接赋初值,我是定义在全局变量里面了。这样可以直接赋值,我是为了方便,呵呵。

var
  Form1: TForm1;
  A: array[1..6] of Integer = (89,67,4,3,2,1);

 


完了测试一下,在界面放个Button与Edit,在其Button的Onclick事件中:

procedure TForm1.Button1Click(Sender: TObject);
begin
  InsertSort;
  for n := 1 to Length(A) do
    begin
      Edit1.Text := Edit1.Text + ' ';
      Edit1.Text := Edit1.Text + IntToStr(A[n]);
    end;
end;


over。。。

转载于:https://www.cnblogs.com/lipengpeng/archive/2013/04/26/3045444.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值