用c语言编写一个实现快速排序的算法
时间: 2023-07-18 07:42:45 浏览: 89
快速排序_C语言_快速排序_
好的,以下是用C语言实现快速排序的代码。这里采用递归实现。
```c
#include <stdio.h>
void quicksort(int arr[], int start, int end) {
if (start >= end) {
return;
}
int pivot = arr[start]; // 以第一个元素作为基准值
int left = start;
int right = end;
while (left < right) {
// 从右往左找到第一个小于基准值的元素
while (left < right && arr[right] >= pivot) {
right--;
}
arr[left] = arr[right];
// 从左往右找到第一个大于基准值的元素
while (left < right && arr[left] < pivot) {
left++;
}
arr[right] = arr[left];
}
arr[left] = pivot;
quicksort(arr, start, left - 1); // 对左半部分递归排序
quicksort(arr, left + 1, end); // 对右半部分递归排序
}
int main() {
int arr[] = {5, 4, 3, 2, 1};
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]);
}
printf("\n");
return 0;
}
```
这个算法的时间复杂度为O(nlogn),是一种比较高效的排序算法。
阅读全文