回 帖 发 新 帖 刷新版面

主题:排序问题,请大家来瞧一下....

在列表(ListBox)中有这几个项:1--5--8--2.5--1.5--9--2--4

如何将这几个项目从大到小或从小到大排列呢...

请指教...谢谢

回复列表 (共1个回复)

沙发

用一个递归可以搞定,不过效率不高,比如有8个数则要8!次排序

procedure sort(var ar: array of real; sortid: Integer);
var
    i, j: integer;
    tmpvalue: real;
begin
    if sortid < sizeof(ar) then
    begin
        for i := sortid to sizeof(ar) do
        begin
            if ar[j] > ar[i] then
            begin
                tmpvalue := ar[i];
                ar[i] := ar[j];
                ar[j] := tmpvalue;
            end;
        end;
        inc(sortid);
        sort(ar, sortid);
    end;
end;

我来回复

您尚未登录,请登录后再回复。点此登录或注册