Cだといちいちめんどくさい。 #include <stdio.h> void quicksort(int array[], int left, int right) { int l = left; int r = right; int pivot = array[(left + right) / 2]; // 中央からピボットを選択 int buf; while (1) { while (array[l] < pivot) l++; while (array[r] > pivot) r--; if (l > r) break; // pivotより小さい値を左、大きい値を右に入れ替え buf = array[l]; array[l] = array[r]; array[r] = buf; l++, r--; }; // pivotより小さい領域と大きい領域をそれぞれ再帰的にソート if (