C言語なら俺に聞け(入門編)Part 94
■ このスレッドは過去ログ倉庫に格納されています
0145デフォルトの名無しさん
2011/12/26(月) 10:46:45.28このマージソートがどうしてもわかりません
トレースはどのようになってるのでしょうか?
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); /* 右を再帰呼び出し */を呼び出すのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています