Ordenando Array Dinâmico de Record
Meu Record
TMeuTipo = record
codigo : double;
numero : integer;
nome : String;
Sigla : String;
end;
Ordenando o array de record pelo campo número
procedure TForm1.QuickSort(var A: array of TMeuTipo; const iLo, iHi: Integer);
var
Lo, Hi, Mid : Integer;
lTemp : TMeuTipo;
begin
Lo := iLo;
Hi := iHi;
Mid := A[(Lo + Hi) div 2].numero;
repeat
while A[Lo].numero < Mid do
Inc(Lo);
while A[Hi].numero > Mid do
Dec(Hi);
if Lo <= Hi then
begin
lTemp := A[Lo];
A[Lo] := A[Hi];
A[Hi] := lTemp;
Inc(Lo);
Dec(Hi);
end;
until Lo > Hi;
if Hi > iLo then
QuickSort(A, iLo, Hi);
if Lo < iHi then
QuickSort(A, Lo, iHi);
end;