本文整理自网络,侵删。
Delphi直接插入法排序示例,将一数组按插入法排序的方法进行有序排列,可视化操作窗口,如下图所示,点击“排序”按钮即可实现排序功能。
插入法排序
Delphi插入法排序代码如下:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
ListBox1: TListBox;
procedure Button1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
private
procedure compositor(var L:array of integer);
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
a:Array[0..10] of integer;
s1,s2:string;
implementation
{$R *.dfm}
{ TForm1 }
procedure TForm1.compositor(var L: array of integer);
var
i,j:integer;
v:integer;
begin
for i:=low(L)+1 to high(L) do
begin
v:=L[i];
j:=i;
while (j<>low(L))and(L[j-1]<v) do//循环找到插入点
begin
L[j]:=L[j-1];//移动元素
j:=j-1;
end;
L[j]:=v;//插入元素
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
ListBox1.Items.Clear;
ListBox1.Items.Add('没有排序的数组:');
ListBox1.Items.Add(s1);
ListBox1.Items.Add('排序后的数组:');
compositor(a);
s2:='';
for i:=0 to 10 do
begin
s2:=s2+IntToStr(a[i])+',';
end;
ListBox1.Items.Add(s2);
end;
procedure TForm1.FormShow(Sender: TObject);
var
i:Integer;
begin
s1:='';
for i:=0 to 10 do
begin
a[i]:=i*2+random(20)-5;
s1:=s1+IntToStr(a[i])+',';
end;
ListBox1.Items.Add('没有排序的数组:');
ListBox1.Items.Add(s1);
end;
end.
相关阅读 >>
Delphi xe datasnap服务器获取客户端ip地址
Delphi 如何编写使stringgrid中的一列具有check功能,和checkbox效果一样
Delphi 将richedit的内容输出到一个image图像中
更多相关阅读请进入《Delphi》频道 >>