用c++代码写一个快速排序算法
时间: 2023-12-29 19:49:02 浏览: 87
好的,我可以帮您解决这个问题。下面是 C 代码实现的快速排序算法示例:
```
#include <stdio.h>
void quick_sort(int arr[], int low, int high) {
int i = low, j = high;
int temp, pivot = arr[(low + high) / 2];
// Partition the array
while (i <= j) {
while (arr[i] < pivot) i++;
while (arr[j] > pivot) j--;
if (i <= j) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
i++;
j--;
}
}
// Recursive calls
if (low < j)
quick_sort(arr, low, j);
if (i < high)
quick_sort(arr, i, high);
}
int main() {
int arr[] = {5, 2, 6, 8, 3, 1, 9, 7, 4};
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;
}
```
这段代码中,`quick_sort` 函数接收一个整型数组、数组的最小下标和最大下标。它首先找出数组的中间数(pivot),然后将数组分为两部分,左侧的元素均小于 pivot,右侧的元素均大于等于 pivot。递归调用 `quick_sort` 函数对各个分区进行排序,直到整个数组有序。
以上是快速排序算法的 C 代码实现,希望对您有所帮助。
阅读全文