VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 815|回复: 5

数组排序问题

[复制链接]

2

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-2-12 19:30:01 | 显示全部楼层 |阅读模式
傻子问个傻问题:
数组 strlist1 : TStringList; StrList[i] > '0'
如何把strlist1 中的值按升序排序,并且值为'0'的在后面。???????
回复

使用道具 举报

2

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-4-10 07:45:01 | 显示全部楼层
var
   i, Position, n: integer;
   Value: TStrings;
   Done : boolean;
  begin
    n := High(Items);
    for i := 0 to n do
    begin
      Value := Items[i];
      Position := i;
      Done := false;
      while not done do
      begin
       if Position <= 0 then
         Done := true
       else
         if StrToInt(Value.Strings[13]) >= StrToInt(Items[Position - 1].Strings[13])  then
           Done := true
         else
         begin
             Items[Position] := Items[Position - 1];
             Position := Position - 1;
         end;
      end;
      Items[Position] := Value;
    end;
    //DownZero(Items);
  end;
****************************但是数据为0的怎么往后放置呢
回复

使用道具 举报

0

主题

12

帖子

12.00

积分

新手上路

Rank: 1

积分
12.00
发表于 2020-6-25 16:00:02 | 显示全部楼层
为0的特别判断一下
回复

使用道具 举报

0

主题

7

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-8-7 23:15:01 | 显示全部楼层
用冒泡排序
回复

使用道具 举报

0

主题

7

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-8-7 23:30:01 | 显示全部楼层
有个笨方法:可以先去0进行一次循环,把0先放到后面。
回复

使用道具 举报

0

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-8-8 00:15:01 | 显示全部楼层
对0做特殊照顾。
把0之后的数据前移,然后在最后加0。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表