- 145 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 10:46:45.28 ]
- www1.cts.ne.jp/~clab/hsample/Sort/Sort6.html
このマージソートがどうしてもわかりません トレースはどのようになってるのでしょうか? 0 4 0 2 0 1 0 0で MergeSort(x, left, mid); /* 左を再帰呼び出し */0 0を呼び出した後 void MergeSort(int x[ ], int left, int right) { int mid, i, j, k; if (left >= right) /* 配列の要素がひとつなら */ return; /* 何もしないで戻る */ /* ここでは分割しているだけ */ mid = (left + right) / 2; /* 中央の値より */ MergeSort(x, left, mid); /* 左を再帰呼び出し */ MergeSort(x, mid + 1, right); /* 右を再帰呼び出し */ returnで何もしないで戻ったら次の MergeSort(x, mid + 1, right); /* 右を再帰呼び出し */を呼び出すのでしょうか?
|

|