69,371
社区成员
发帖
与我相关
我的任务
分享
void __quick_sort(int *p, int left, int right) {
int pivot, pivot_index = left, i;
swap(p, (left + right) / 2, right);
pivot = p[right];
for (i = left; i < right; i++) {
if (p[i] >= pivot) {
swap(p, i, pivot_index);
pivot_index++;
}
}
swap(p, pivot_index, right);
if (left < pivot_index - 1)
__quick_sort(p, left, pivot_index - 1);
if (right > pivot_index + 1)
__quick_sort(p, pivot_index + 1, right);
}