Code: Select all
var test : Array of Record:
     var1 : String
     var2 : Integer;
end;
У кого-нибудь есть готовое решение?
пс нужен максимально быстрый алгоритм для массивов до 50 элементов +-
Code: Select all
var test : Array of Record:
     var1 : String
     var2 : Integer;
end;
встудию, мне, смешному, очень будет любопытно оценить ваш труд!Az_Rieil wrote:Решено.
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;