Frage zu einem Bubblesort

glitterangel

Grünschnabel
Hi,
hab ein Programm mit Schülern, wo Arrays drin sind, die vom Typ her Record sind.
Jetzt ist es also so, dass ich verschiedene Kriterien habe, die zu einem Schüler gehören. Unter anderem seine Katalognummer. Ich würde gerne die Schüler eben nach dieser sortieren. Wie mach ich das am besten?
Liebe Grüße
glitterangel
 
Mein Problem dabei ist ja nicht, dass ich nicht wüsste wie man Bubblesort schreibt, ich weiß nur nicht ob es geht, dass wenn ich einfach die Katalognummern sortiere, die restlichen Kriterien mitsortiert werden.
Wenn ja, dann bin ich froh, wenn nein weiß ich nicht weiter.
 
Nun ja, wenn du dieses Record hast, dann vergleichst du einfach nach deinem gewünschten Kriterium und tauschst dann das gesamte Record, falls es in der falschen Reihenfolge ist. Dann tauscht du die Schüler nach diesem kriterium. Klingt doch logisch, oder?

lg Hellie
 
Kann das so stimmen?
Code:
procedure sort;
begin
  clrscr;
  writeln('Es wird nach Katalognummern sortiert.');
  repeat
    ok:=true;
    for i:= 1 to s do
    begin
      if schueler[i].nummer > schueler[i+1].nummer then
      begin
        hilf:= schueler[i];
        schueler[i]:= schueler[i+1];
        schueler[i+1]:= hilf;
        ok:= false;
      end;
    end;
  until ok=true;
end;
 
Ich würde nicht diese Repeat-Schleife außenherum nehmen, das ist mir für heute Abend zu viel zum Denken. Probiers doch mal aus. Kann natürlich genauso gut stimmen. Ich hätte eine zweite for-to-do-Schleife genommen, und zwar von 1 bis s-1.

Und einrücken nicht vergessen, macht den Text um einiges lesbarer ;)

lg Hellie

PS: Angaben ohne Gewähr, ich steh neben mir :suspekt:
 

Neue Beiträge

Zurück