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;