|
■No83625 (souya さん) に返信
> 1回目のmergeSortArray(配列の値,0,7) //一番最初の呼び出し
> 2回目のmergeSortArray(配列の値,0,3) //再帰01
> 3回目のmergeSortArray(配列の値,0,1) //再帰01
> 4回目のmergeSortArray(配列の値,0,0) //再帰01
> return とされ4回目のmergesortArrayの
> 呼び出しもとに処理が戻されたときに
>
> highの値が1になります。
>
> 実引数で値型の値渡しをしているので
> returnされたときは実引数の値は変わらない
> という風に学んだのですが
>
> なぜ、4回目のmergeSortArrayでreturnされた時に
> highの値が1になるのか分かりません
>
いろいろ省略して書きます
Sort(0,7)
Sort(0,3)
Sort(0,1)
Sort(0,0)
Sort(1,1)
Sort(2,3)
Sort(4,7)
Sort(4,5)
Sort(4,4)
Sort(5,5)
Sort(6,7)
Sort(7,7)
という呼び出しになります。
Sort(0,0)からreturnされた状態というのは
Sort(0,1)から呼ばれたSort(0,0)が終了して
Sort(0,1)の継続処理が動くのでHighは1となります。
|