Beim Sortieren gibt es 2 Grundoperationen:
Vergleichen und
Vertauschen.
Vergleichen und Vertauschen ist die Basis fast aller Sortieralgorithmen.
Dein Code zum Vertauschen von 2 Adr Records ist relativ schlecht, drum hier eine bessere Variante:
Delphi-Quellcode:
procedure VertauscheAdrRecord(var a,b: TAdr);
var
temp : TAdr;
begin
temp := a;
a := b;
b := temp;
end;