>>127
3箇所修正

(1) pivot関数の書き換え
return (left + right + 1) / 2;

(2)partition関数内の条件
while (a[j] > p) // 軸以下のデータを探索

(3)quick関数先頭にブロック
if (left >= right) return;