Zitat von
qwertz543221:
Danke für die Rückmeldung. Doch möchte ich folgendes anmerken:
1)
Zitat:
Bubblesort greift auf ar[length(ar)] zu also BUMM!
im qt steht doch folgende schleife:
Delphi-Quellcode:
while i<length(ar) do //hier
begin
a:=ar[i];
b:=ar[i+1]; // ja und hier wird i+1 = length(ar) und BUMM!
dadurch, dass in der while schleife nicht "<=" steht, läuft sie bis length(ar)-1. Es macht auch nicht "BUMM!" - sondern es gibt die korrekte Reihenfolge aus.
Die Bedingung der While-Schleife lautet nicht "<=" sondern "<" und es
macht BUMM! wie in meinem Kommentar beschrieben. Aber natürlich nur wenn Rangecheck eingeschaltet ist (was bei der leider mal wieder nicht der Fall ist).
Gammatester
PS: Scheint so, als wenn der "Schrott in Quicksort" notwendig ist, weil Du eine ungewöhnliche Implementation hats, die vor der While-Schleife i := l-1; und j := r+1; setzt und nach den repeats immer tauscht. Also lass Ar[j]:=Ar[i]; Ar[i]:=b; drin.