>>335
わかったよ。マージソートは、2つのラン(ソート済み配列)をボトムアップ
的に併合してソートする方法で、このプログラムではそのランとは、

1.i は p〜q
2.j は p+1〜r

をインデックスするようになっている。したがって i と j がそれぞれの範囲を
はみ出してしまうと、同じ値が2度以上書き込まれてしまうので、j>rとi<=q
という条件が必要なのです。特に j は範囲を上へはみ出すと配列外を指して
しまうのでまずい。