使用C++实现快速排序
时间: 2023-10-24 07:09:18 浏览: 33
以下是使用C语言实现快速排序的示例代码:
```c
#include <stdio.h>
void quick_sort(int arr[], int left, int right) {
if (left >= right) {
return;
}
int pivot = arr[left];
int i = left, j = right;
while (i < j) {
while (i < j && arr[j] >= pivot) {
j--;
}
arr[i] = arr[j];
while (i < j && arr[i] <= pivot) {
i++;
}
arr[j] = arr[i];
}
arr[i] = pivot;
quick_sort(arr, left, i - 1);
quick_sort(arr, i + 1, right);
}
int main() {
int arr[] = {3, 7, 4, 1, 9, 6, 5, 2, 8};
int n = sizeof(arr) / sizeof(arr[0]);
quick_sort(arr, 0, n - 1);
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
快速排序的思路是选择一个基准元素,然后将比基准元素小的元素移到基准元素的左边,将比基准元素大的元素移到基准元素的右边。接着,递归地对左右两个子序列进行快速排序,直到序列有序为止。在实现中,我们可以选择序列的第一个元素作为基准元素,然后使用两个指针i和j分别从序列的左右两端开始扫描序列,交换不符合要求的元素,最后将基准元素放到正确的位置上。