Beim Sortieren kommt es drauf an, 2 Dinge zu vergleichen.
Delphi-Quellcode:
procedure CompareRangeintrag(const a, b : RangEintrag):integer;
var
s1, s2, p1, p2 : integer;
begin
t1 := a.Heimspiele + a.Auswspiele;
p1 := a.Heimpunkte + a.Auswpunkte;
t2 := b.Heimspiele + b.Auswspiele;
p2 := b.Heimpunkte + b.Auswpunkte;
if t1 <> 0 then
p1 := p1 / t1;
if t2 <> 0 then
p2 := p2 / t2;
if p1 > p2 then
result :=1 // Rang a ist besser als b
else if p1 < p2 then
result := -1 // Rang b ist besser als a
else
result := 0; // beide gleich (schlecht)
end;
Die 2. Operation beim Sortieren ist es, 2 Dinge zu vertauschen:
Delphi-Quellcode:
procedure SwapRangeintrag(var a, b : RangEintrag);
var
tmp : Rangeintrag;
begin
tmp := a;
a := b;
b := tmp;
end;
Mit diesen beiden Grundoperationen ist es egal, ob du BubbleSort, Heapsort, Quicksort
oder ein anderes Sortierverfahren verwendest.