Also schreibst Du ein Sortierprogramm, das aus Deiner Tabelle t, die n
Elemente hat, die Elemente k bis l sortieren kann:
ssort(t,k,l)
{
if l-k = 0 return ;
if l-k = 1 return ;
if l-k = 2
{
if t[k] > t[l] then vertausche t[k] mit t[l]
return ;
}
j = (k+l)/2 ; Die Tabelle halbieren
ssort(t, k,j) ; Die erste Hälfte sortieren
ssort(t,j,l) ; Die zweite Hälfte sortieren
rem Die beiden Teilsortiereergebnisse miteinander mischen (merge)
repeat until k >= j or j>= l
if t[k] <= t[j] then ++k ; continue
else
verschiebe t[j] vor t[k]
++k
++j
endif
endrepeat
Mit "verschiebe" ist etwa folgendes gemeint:
x = t[k]
for i = k to j-2
t[i] = t[i+1]
t[j-1] = x
Um die ganze Tabelle zu sortieren muss das Hauptprogramm erst die
Tabelle t füllen und dann aufrufen ssort(t,0,n-1) (oder vielleicht
sort(t,1,n)
Viel Spaß beim Umsetzen.
Poste dann dein Programm, wenn es fertig ist.
(ich hatte mein Programm mal sortmerg genannt, sollte unter DOS nur 8
Buchstaben haben, andere, die gerne Worthälften vertauschen, nennen den
Algorithmus "mergesort", danach mal recherchieren)