用c++写一个快速排序
时间: 2024-02-18 09:37:14 浏览: 56
以下是使用C语言编写的快速排序算法的示例代码:
```c
#include <stdio.h>
void quicksort(int arr[], int left, int right);
int main()
{
int arr[] = { 10, 7, 8, 9, 1, 5 };
int n = sizeof(arr) / sizeof(arr[0]);
quicksort(arr, 0, n - 1);
printf("Sorted array: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
void swap(int* a, int* b)
{
int t = *a;
*a = *b;
*b = t;
}
int partition(int arr[], int left, int right)
{
int pivot = arr[right];
int i = left - 1;
for (int j = left; j <= right - 1; j++) {
if (arr[j] < pivot) {
i++;
swap(&arr[i], &arr[j]);
}
}
swap(&arr[i + 1], &arr[right]);
return (i + 1);
}
void quicksort(int arr[], int left, int right)
{
if (left < right) {
int pivot_index = partition(arr, left, right);
quicksort(arr, left, pivot_index - 1);
quicksort(arr, pivot_index + 1, right);
}
}
```
该程序首先定义了一个名为quicksort的函数,该函数采用递归方式实现快速排序算法。在函数内部,程序使用partition函数来确定枢轴元素的位置,然后将数组分成两部分,分别递归地对它们进行排序。swap函数用于交换数组中的两个元素的值。最后,程序通过调用quicksort函数来对给定数组进行排序,并在控制台上输出排序后的结果。
阅读全文