用C语言编写快速排序算法
时间: 2023-05-25 22:03:59 浏览: 125
下面是使用C语言编写快速排序算法的示例代码:
```c
#include<stdio.h>
void quicksort(int *arr, int left, int right) {
if (left < right) {
int i = left, j = right, pivot = arr[left];
while (i < j) {
while (i < j && arr[j] >= pivot) {
j--;
}
if (i < j) {
arr[i] = arr[j];
i++;
}
while (i < j && arr[i] < pivot) {
i++;
}
if (i < j) {
arr[j] = arr[i];
j--;
}
}
arr[i] = pivot;
quicksort(arr, left, i - 1);
quicksort(arr, i + 1, right);
}
}
int main() {
int arr[] = {8, 2, 7, 5, 3, 1};
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;
}
```
快速排序算法的基本思路是:从数组中选择一个元素作为枢纽元素(pivot),将数组划分为小于pivot的部分和大于pivot的部分。然后对这两部分分别递归调用快速排序算法,直到整个数组有序。这个示例代码中的实现是标准的、原地修改的快速排序算法,其时间复杂度为 O(nlogn)。
阅读全文