誤 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
p.73「順にトレースすると〜」からp.74 左段 下から9行目「〜Arrangeが終了する。」まで | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
正 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
順にトレースすると,2回目のQuickSortでは,Min=0,Max=4であるため,
この範囲でFindPivotが実行される。A[Min]=A[0]であり,A[1]と比較してA[0]のほうが大きいので,今回はPivotの値は3となる。
Pivot=3,Min=0,Max=4として,Arrangeを実行する。
<Arrangeの処理>
L=0,R=4であり,A[0]とA[4]が交換される。
A[L](=0)<Pivot(=3)が成立するので,Lは1増加して1となる。
A[L](=2)<Pivot(=3)が成立するので,Lは1増加して2となる。
A[L](=1)<Pivot(=3)が成立するので,Lは1増加して3となる。
A[L](=4)>Pivot(=3)となるためループを抜ける。
A[R](=3)≧Pivot(=3)が成立するので,Rは1減少して3となる。
A[R](=4)≧Pivot(=3)が成立するので,Rは1減少して2となる。
A[R](=1)<Pivot(=3)となるためループを抜ける。
ここでL>Rとなり,ループから抜ける。 「・ Ret ← L」によって,Retに3が入ってArrangeが終了する。 |
Copyright (c) 2003 All Rights Reserved by Gijutsu-Hyohron Co., Ltd.