Delphi直接插入法排序示例


本文整理自网络,侵删。

 

插入法排序

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新建服务,停止系统服务,以及获取服务状态和新建系统服务器的方法

Delphi xe5 与其他版本共存

Delphi中对进程内存进行读写

Delphi 主窗体最小化时不显示在任务栏

Delphi windows的消息传递--消息盒子

Delphi 10.3.1 android沉浸式透明状态栏

Delphi 加载图像并压缩,旋转图像角度

Delphi 2009 新增单元 character isletter、isupper、islower、isdigit、isnumber

Delphi 安卓app的https访问权限

Delphi 修改exe应用程序图标

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...