#include<stdio.h> // 函数声明 void quickSort(int[], int, int); int partition(int[], int, int); // 主函数 int main() { int arr[] = {64, 34, 25, 12, 22, 11, 90}; int n = sizeof(arr) / sizeof(arr[0]); printf("排序前的数组:\n"); displayArray(arr, n); quickSort(arr, 0, n - 1); printf("排序后的数组:\n"); displayArray(arr, n); return 0; } // 快速排序算法实现 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); } } // 划分函数,返回基准元素的位置 int partition(int arr[], int low, int high) { int pivot = arr[high]; int i = (low - 1); 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 swap(int* a, int* b) { int temp = *a; *a = *b; *b = temp; } // 显示数组元素 void displayArray(int arr[], int n) { for (int i = 0; i< n; i++) { printf("%d ", arr[i]); } printf("\n"); }这是一个使用 C 语言实现快速排序算法的示例。快速排序是一种常用的排序算法,它通过选择一个基准元素,将数组划分为两部分,并递归地对这两部分进行排序。时间复杂度为 O(nlogn)。 上述代码中,首先定义了一个快速排序函数 `quickSort()`,它的参数包括待排序数组、低位索引和高位索引。在 `quickSort()` 函数内部,根据基准元素的位置,将数组划分为两部分,并对两部分分别进行快速排序。 划分函数 `partition()` 用于确定基准元素的位置,并将小于基准元素的元素移到其左侧,大于基准元素的元素移到其右侧。 交换函数 `swap()` 用于交换两个元素的值。在快速排序过程中,多次使用该函数进行元素交换。 主函数中定义待排序的数组 `arr`,并调用 `quickSort()` 函数完成排序,并通过 `displayArray()` 函数将排序后的数组打印输出。 该示例展示了如何使用 C 语言实现一个高效的快速排序算法。通过理解和掌握该算法,开发者能够在实际工作中更好地利用 C 语言进行排序相关的编程任务。
使用C语言实现高效排序算法
推荐阅读:
解决在layer.open中使用时间控件laydate失败的问题_javascript技巧
Mysql大型SQL文件快速恢复方案分享_Mysql
关于ckeditor在bootstrap中modal中弹框无法输入的解决方法_javascript技巧
yii2.0框架使用 beforeAction 防非法登陆的方法分析_php实例
layer弹出层扩展主题的方法_javascript技巧
python修改FTP服务器上的文件名_python
手写Vue弹窗Modal的实现代码_vue.js
Laravel框架验证码类用法实例分析_php实例
解析python实现Lasso回归_python
js回溯法计算最佳旅行线路代码实例_javascript技巧
Python 点击指定位置验证码破解的实现代码_python
layer更改皮肤的实现方法_javascript技巧
node 解析图片二维码的内容代码实例_node.js
mybatis plus使用redis作为二级缓存的方法_java
python实现的接收邮件功能示例【基于网易POP3服务器】_python
热门内容:
python包/库安装,解决ImportError: DLL load failed while importing _framework_bindings
pytorch测试GPU是否可用和cudnn检测是否可用
Jupyter Notebook:FileNotFoundError: [WinError 2] 系统找不到指定的文件
excel怎么把重复项合并? excel将相同名字的数据合并在一起的教程_excel_办公软件_软件教程
windows怎么重启服务的命令? Windows服务启动与停止命令的教程_windows_Windows系列_操作系统
win11蜘蛛纸牌在哪 win11玩蜘蛛纸牌游戏的方法_windows11_Windows系列_操作系统
如何用ps调整贴图明暗色差的颜色? ps中调整色彩明暗度的的技巧_photoshop教程
win10开机10秒倒计时怎么取消? Win10取消开机倒计时的三种方法_windows10_Windows系列_操作系统
电脑C盘拒绝访问或打不开怎么办? win11/win10 C盘决绝访问的多种解决办法_windows11_Windows系列_操作系统
WPS如何并排比较两个文档 WPS并排比较两个文档的方法_金山WPS_办公软件_软件教程
WPS打印时如何添加装订线 WPS打印时添加装订线的方法_金山WPS_办公软件_软件教程
怎么关闭chrome/edge浏览器打开外部应用程序的弹窗 禁止广告弹窗的技巧_浏览下载_软件教程
WPS表格筛选后如何恢复原本的所有数据 Excel还原筛选的数据的方法_金山WPS_办公软件_软件教程
win10搜索不到指定内容怎么办? Win10搜索文件功能找不到文件的多种解决办法_windows10_Windows系列_操作系统
Win11更新失败资源管理器崩溃无限重启怎么解决?_windows11_Windows系列_操作系统
WPS饼图如何设置为分离性饼图 WPS饼图设置为分离性饼图的方法_金山WPS_办公软件_软件教程
wps表格无法拖动怎么回事? WPS Excel单元格无法拖拽移动的解决方法_金山WPS_办公软件_软件教程
WPS幻灯片中如何添加创意图形 WPS幻灯片中添加创意图形的方法_金山WPS_办公软件_软件教程
Win11系统保护在哪? Win11关闭Windows保护的技巧_windows11_Windows系列_操作系统
WPS表格如何设置四舍五入取整 WPS表格设置数字四舍五入取整方法_金山WPS_办公软件_软件教程