Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
Delphi 12 Athens
|
AW: Quicksort - theorie
14. Mai 2013, 08:48
- Start: L=0, Hi=8, A[Lo]=3, A[Hi]=5, Mid=4
- repeat
- nach den beiden while-Schleifen: Lo=1, Hi=5, A[Lo]=7, A[Hi]=2
- if-Bedingung ist true, also tauschen und Lo/Hi weiterbewegen: Lo=2, Hi=4, A[Lo]=8, A[Hi]=4
- until-Bedingung ist false, also weiter nach repeat
- beide while-Schleifen werden nicht durchlaufen, da A[Lo]{8} < Mid {4} und A[Hi] {4} < Mid {4} fehlschlagen
- if-Bedingung ist immer noch true, also tauschen und weiterbewegen wie oben: Lo=3, Hi=3, A[Lo]=1, A[Hi]=1
- until schlägt immer noch nicht zu, also wieder weiter nach repeat
- A[Lo] {1} ist kleiner als Mid {4} und die erste while-Schleife setzt Lo=4, die zweite while ändert nichts
- Die if-Bedingung greift nun nicht, aber dafür das until (die beiden schließen sich ja gegenseitig aus)
- Da Hi {3} > iLo {0} ist, wird QuickSort für [0, 3] aufgerufen
- Gleiches gilt für Lo {4} < iHi {8}
|
|
Zitat
|