打算每天写一个小算法,也为以后查找起来更方便一些。(均为我自己运行能通过的代码,以便对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。。。