Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7

Сортировка массива объектов

тут можно задать вопрос по скриптингу
Post Reply
Az_Rieil
Neophyte
Neophyte
Posts: 34
Joined: 21.05.2014 17:18

Сортировка массива объектов

Post by Az_Rieil »

Предположим есть нечто

Code: Select all

var test : Array of Record:
     var1 : String
     var2 : Integer;
end;
И есть задача отсортировать массив по полю var2.
У кого-нибудь есть готовое решение?
пс нужен максимально быстрый алгоритм для массивов до 50 элементов +-
Az_Rieil
Neophyte
Neophyte
Posts: 34
Joined: 21.05.2014 17:18

Re: Сортировка массива объектов

Post by Az_Rieil »

Решено.
drabadan
Expert
Expert
Posts: 730
Joined: 13.12.2012 17:35
Contact:

Re: Сортировка массива объектов

Post by drabadan »

Az_Rieil wrote:Решено.
встудию, мне, смешному, очень будет любопытно оценить ваш труд!
Az_Rieil
Neophyte
Neophyte
Posts: 34
Joined: 21.05.2014 17:18

Re: Сортировка массива объектов

Post by Az_Rieil »

Умничать все равно не надо.

Code: Select all

procedure ASort;
    var
    gap,n,i : Byte;
    swapped : Boolean;
begin
    gap:= length(Assest.commands);   
    if gap < 2 then exit;
    n:= gap;
    swapped:= true;
    while (gap > 1)OR(swapped) do
        begin
        if gap > 1 then gap:= StrToInt(FloatToStr(Round((gap / 1.24733)-0.49)));
        i:=0;       
        swapped:=false;
        while( ( i+gap ) < n ) do
            begin
            if( Assest.commands[i].priory > Assest.commands[i+gap].priory) then
                begin
                ASwap( i, i+gap );
                if not(swapped) then swapped:=true;
                end; 
            inc(i);
            end;
        end;
end;
Post Reply