C语言快速排序怎么实现
时间: 2023-10-17 12:11:53 浏览: 36
快速排序的实现思路如下:
1. 选取一个基准元素(pivot)。
2. 将数组分成两个部分,小于等于 pivot 的元素放在左边,大于 pivot 的元素放在右边。
3. 对左右两部分分别递归进行快速排序,直到无法再分。
4. 将左半部分与右半部分合并。
以下是 C 语言实现快速排序的示例代码:
```
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];
while (i < j && arr[i] <= pivot)
i++;
if (i < j)
arr[j--] = arr[i];
}
arr[i] = pivot;
quicksort(arr, left, i - 1);
quicksort(arr, i + 1, right);
}
}
int main() {
int arr[] = {3, 7, 2, 9, 1, 4, 6, 8, 5};
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;
}
```
输出结果为:1 2 3 4 5 6 7 8 9。
希望能帮到您,有其他问题欢迎继续提问。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)