您或多或少地回答了自己的问题。您可能想要执行以下操作:
void partition(int *a, int size) { int pivot = a[0]; int left, right; for(left = 1, right = size-1; left < right; ) { if(a[left] > pivot && a[right] <= pivot) { swap(left, right, a); } if(a[left] <= pivot) left++; if(a[right] > pivot) right--; }}


