用c语言设计一个代码
时间: 2024-02-11 12:05:57 浏览: 19
好的,下面是一个用C语言实现的快速排序算法的代码示例:
```c
#include <stdio.h>
// 快速排序函数
void quicksort(int arr[], int left, int right) {
int i, j, pivot, temp;
// 数组长度为0或1时直接返回
if (left >= right) {
return;
}
// 选取pivot中间值
pivot = arr[(left + right) / 2];
// 将小于pivot的值放到pivot的左边,大于pivot的值放到右边
i = left;
j = right;
while (i <= j) {
while (arr[i] < pivot) {
i++;
}
while (arr[j] > pivot) {
j--;
}
if (i <= j) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
i++;
j--;
}
}
// 递归排序pivot左右两侧的子数组
quicksort(arr, left, j);
quicksort(arr, i, right);
}
// 测试函数
int main() {
int arr[] = {43, 21, 34, 89, 10, 12, 6, 72};
int n = sizeof(arr) / sizeof(arr[0]);
int i;
printf("Original array: ");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
quicksort(arr, 0, n-1);
printf("Sorted array: ");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
这个代码实现了一个快速排序算法,通过递归的方式将数组分为左右两个子数组,然后将小于pivot的值放到pivot的左边,大于pivot的值放到右边。最后再对左右两侧的子数组分别进行递归排序,直到子数组长度为0或1时返回。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)