Delphi 中,有没有对数组进行排序的函数?
我自己定义了一个一维数组,想按照元素大小,从大到小排列。但是,不想自己写排序算法。有没有一种函数,可以直接将元素按照要求排列好,再返回来。...
我自己定义了一个一维数组,想按照元素大小,从大到小排列。但是,不想自己写排序算法。有没有一种函数,可以直接将元素按照要求排列好,再返回来。
展开
3个回答
展开全部
就是放入Tstringlist内
同sort方法排序
然后再输出到数组
至于再返回来,没什么好办法,还是保留原来没排序之前的Stringlist吧
var
arr1:array [0..9] of integer;
s1:Tstringlist;
i:integer;
begin
arr1[0]:=6;
arr1[1]:=5;
arr1[2]:=4;
arr1[3]:=3;
arr1[4]:=2;
arr1[5]:=1;
arr1[6]:=0;
arr1[7]:=9;
arr1[8]:=7;
arr1[9]:=8;
s1:=Tstringlist.Create;
s2:=Tstringlist.Create;
for i:=0 to length(arr1)-1 do
begin
s1.Add(inttostr(arr1[i]))
end;
s2.Text:=s1.Text;
s1.Sort;
for i:=0 to s1.Count-1 do
begin
arr1[i]:=strtoint(s1.Strings[i]);
end;
showmessage(inttostr(arr1[0]));
showmessage(inttostr(arr1[1]));
showmessage(inttostr(arr1[2]));
end;
其中 s2就保存未排序之前的数据 s2 声明为全局变量
同sort方法排序
然后再输出到数组
至于再返回来,没什么好办法,还是保留原来没排序之前的Stringlist吧
var
arr1:array [0..9] of integer;
s1:Tstringlist;
i:integer;
begin
arr1[0]:=6;
arr1[1]:=5;
arr1[2]:=4;
arr1[3]:=3;
arr1[4]:=2;
arr1[5]:=1;
arr1[6]:=0;
arr1[7]:=9;
arr1[8]:=7;
arr1[9]:=8;
s1:=Tstringlist.Create;
s2:=Tstringlist.Create;
for i:=0 to length(arr1)-1 do
begin
s1.Add(inttostr(arr1[i]))
end;
s2.Text:=s1.Text;
s1.Sort;
for i:=0 to s1.Count-1 do
begin
arr1[i]:=strtoint(s1.Strings[i]);
end;
showmessage(inttostr(arr1[0]));
showmessage(inttostr(arr1[1]));
showmessage(inttostr(arr1[2]));
end;
其中 s2就保存未排序之前的数据 s2 声明为全局变量
追问
List集合是Delphi刚加上的吗?怎么以前没有。我接触过c++,java,这两种都有。
追答
早就有stringlist 实际上delphi的设计理念不差
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
delphi里没有。如果你不想自己写,可以在网上搜现成的代码
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-07-27
展开全部
Delphi很久很久没玩,不过任何一种高级编程语言都会有排序函数可调用,要去查资料.
我说知道的C# VB.NET,都有这样的函数可用,否则,可以放弃该编程语言了。
不过我对Delphi不熟悉,你应该自己去查找资料。
我说知道的C# VB.NET,都有这样的函数可用,否则,可以放弃该编程语言了。
不过我对Delphi不熟悉,你应该自己去查找资料。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询