快速排序算法C++代码
时间: 2023-09-25 21:16:40 浏览: 45
以下是快速排序算法的C语言代码:
```
#include <stdio.h>
void quick_sort(int[], int, int);
int partition(int[], int, int);
int main() {
int a[] = {7, 2, 8, 1, 4, 9, 5};
int n = sizeof(a) / sizeof(a[0]);
quick_sort(a, 0, n - 1);
printf("Sorted array: \n");
for (int i = 0; i < n; i++)
printf("%d ", a[i]);
return 0;
}
void quick_sort(int a[], int l, int r) {
int j;
if (l < r) {
j = partition(a, l, r);
quick_sort(a, l, j - 1);
quick_sort(a, j + 1, r);
}
}
int partition(int a[], int l, int r) {
int pivot, i, j, t;
pivot = a[l];
i = l;
j = r + 1;
while (1) {
do
++i;
while (a[i] <= pivot && i <= r);
do
--j;
while (a[j] > pivot);
if (i >= j)
break;
t = a[i];
a[i] = a[j];
a[j] = t;
}
t = a[l];
a[l] = a[j];
a[j] = t;
return j;
}
```
该代码实现了快速排序算法,将数组递归地分割为较小的部分,并对它们进行排序。