用C语言实现一个快速排序
时间: 2023-03-25 14:00:17 浏览: 61
快速排序是一种常见的排序算法,其基本思想是通过分治的思想将一个大问题分解成若干个小问题,然后逐步解决这些小问题,最终得到整个问题的解。
具体实现过程如下:
1. 选择一个基准元素,通常选择第一个元素作为基准元素。
2. 将序列中所有小于基准元素的元素移动到基准元素的左边,所有大于基准元素的元素移动到基准元素的右边。
3. 对基准元素左右两边的子序列分别进行快速排序,直到子序列长度为1或。
C语言实现代码如下:
void quick_sort(int arr[], int left, int right) {
if (left >= right) {
return;
}
int i = left, j = right, pivot = arr[left];
while (i < j) {
while (i < j && arr[j] >= pivot) {
j--;
}
arr[i] = arr[j];
while (i < j && arr[i] <= pivot) {
i++;
}
arr[j] = arr[i];
}
arr[i] = pivot;
quick_sort(arr, left, i - 1);
quick_sort(arr, i + 1, right);
}
int main() {
int arr[] = {5, 3, 8, 4, 2, 7, 1, 6};
int len = sizeof(arr) / sizeof(arr[]);
quick_sort(arr, , len - 1);
for (int i = ; i < len; i++) {
printf("%d ", arr[i]);
}
return ;
}
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)
![text/x-c](https://img-home.csdnimg.cn/images/20210720083646.png)
![text/plain](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)