C++快速排序算法源码
时间: 2023-07-05 08:35:24 浏览: 53
下面是 C 语言实现快速排序算法的源码:
```c
#include <stdio.h>
// 交换函数
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
// 分区函数
int partition(int arr[], int left, int right) {
int pivot = arr[left];
int i = left + 1;
int j = right;
while (i <= j) {
while (i <= j && arr[i] <= pivot) {
i++;
}
while (i <= j && arr[j] > pivot) {
j--;
}
if (i < j) {
swap(&arr[i], &arr[j]);
}
}
swap(&arr[left], &arr[j]);
return j;
}
// 快速排序函数
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);
}
}
int main() {
int arr[] = { 5, 2, 9, 1, 5, 6, 3 };
int n = sizeof(arr) / sizeof(arr[0]);
quickSort(arr, 0, n - 1);
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
这段代码实现了快速排序算法,包括 swap 函数、partition 函数和 quickSort 函数。其中 swap 函数用于交换两个元素的值,partition 函数用于分区并返回基准元素的位置,quickSort 函数用于递归地对左右两个子序列进行快速排序。最后在 main 函数中测试了该算法的正确性。