Delphi直接刺进法排序示例-Delphi-优质IT资源分享社区

admin
管理员
管理员
  • UID1
  • 粉丝26
  • 关注4
  • 发帖数581
  • 社区居民
  • 忠实会员
  • 原创写手
阅读:132回复:0

  Delphi直接刺进法排序示例

楼主#
更多 发布于:2016-06-03 23:04

Delphi直接刺进法排序示例,将一数组按刺进法排序的方法进行有序摆放,可视化操作窗口,如下图所示,点击“排序”按钮即可完成排序功能。

Delphi刺进法排序代码如下:

unit Unit1;interfaceuses  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);vari,j:integer;v:integer;begin  for

i:=low(L)+1 to high(L) do    begin      v:=L;      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)+',';  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*2+random(20)-5;  

 s1:=s1+IntToStr(a)+',';  end;  ListBox1.Items.Add('没有排序的数组:');

 ListBox1.Items.Add(s1);end;end.

优质IT资源分享社区为你提供此文。

本站有大量优质Delphi教程视频,资料等资源,包含Delphi基础教程,高级进阶教程等等,教程视频资源涵盖传智播客,极客学院,达内,北大青鸟,猎豹网校等等IT职业培训机构的培训教学视频,价值巨大。欢迎点击下方链接查看。

Delphi教程视频

优质IT资源分享社区(www.itziyuan.top)
一个免费,自由,开放,共享,平等,互助的优质IT资源分享网站。
专注免费分享各大IT培训机构最新培训教学视频,为你的IT学习助力!

!!!回帖受限制请看点击这里!!!
!!!资源失效请在此版块发帖说明!!!

[PS:按 CTRL+D收藏本站网址~]

——“优质IT资源分享社区”管理员专用签名~

本版相似帖子

游客