用c语言实现快速排序
时间: 2023-02-08 08:02:09 浏览: 18
快速排序是一种分治思想的排序算法。其基本思路是:选择一个基准元素,通过一趟排序将待排序序列分成独立的两部分,其中一部分的所有元素都比另外一部分的所有元素都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个序列变成有序序列。
C代码如下:
```C
void quickSort(int arr[], int left, int right) {
int i, j, pivot, temp;
if (left < right) {
i = left;
j = right;
pivot = arr[left];
while (i < j) {
while (arr[j] > pivot) {
j--;
}
while (i < j && arr[i] <= pivot) {
i++;
}
if (i < j) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
arr[left] = arr[i];
arr[i] = pivot;
quickSort(arr, left, i - 1);
quickSort(arr, i + 1, right);
}
}
```
请注意,上面的代码是一个递归实现,它可能会导致栈溢出。你可以使用非递归实现,例如使用栈来实现快速排序。