http://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); /* 右を再帰呼び出し */を呼び出すのでしょうか?