アルゴリズム入門の代表的例題のような「クイックソート」ですが、意外と「罠」が少なくありません。例えば以下のような教科書的実装を考えます。 void quicksort(int *a, int n) { int tmp, pivot, left, right; if (n <= 1) return; pivot = a[0]; left = 1; right = n - 1; while (left <= right) { if (a[left] < pivot) { left++; } else { tmp = a[left]; a[left] = a[right]; a[right] = tmp; right--; } } tmp = a[right]; a[right] = a[0]; a[0] = tmp; quicksort(&a[0], right); quicksort(&a[