没有合适的资源?快使用搜索试试~ 我知道了~
C语言快速排序.docx
需积分: 1 0 下载量 119 浏览量
2023-11-08
09:41:42
上传
评论
收藏 17KB DOCX 举报
温馨提示
试读
2页
快速排序c语言
资源推荐
资源详情
资源评论
快速排序是一种非常高效的算法。它基于分治策略,并且在实践中表现出色。快速排
序的核心思想是选择一个基准元素,将数组分成两个子数组,其中一个子数组的所有元素
都小于基准元素,而另一个子数组的所有元素都大于基准元素。然后,递归地对这两个子
数组进行排序。下面是使用 C 语言实现快速排序的示例代码:
#include <stdio.h>
// 交换两个元素的值
void swap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
// 将基准元素放在正确的位置,并返回其索引
int partition(int arr[], int low, int high) {
int pivot = arr[high]; // 选择最后一个元素作为基准元素
int i = (low - 1); // i 表示小于基准元素的子数组的边界索引
for (int j = low; j <= high - 1; j++) {
// 如果当前元素小于等于基准元素,则将其放入小于基准元素的子数组中
if (arr[j] <= pivot) {
i++;
swap(&arr[i], &arr[j]);
}
}
swap(&arr[i + 1], &arr[high]); // 将基准元素放在正确的位置
return (i + 1);
}
// 快速排序算法
void quickSort(int arr[], int low, int high) {
if (low < high) {
int pi = partition(arr, low, high); // 将数组分成两个子数组
quickSort(arr, low, pi - 1); // 对左侧子数组进行排序
quickSort(arr, pi + 1, high); // 对右侧子数组进行排序
}
}
// 打印数组
void printArray(int arr[], int size) {
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("");
资源评论
大宝贱
- 粉丝: 345
- 资源: 477
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功