博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
快速排序
阅读量:4881 次
发布时间:2019-06-11

本文共 1399 字,大约阅读时间需要 4 分钟。

1 /* 2 时间:2015年9月26日21:34:10 3 描述:对数组a[]中元素排序 4 功能:快速排序 5 */ 6 # include 
7 8 int FindPos(int *, int, int); 9 void QuickSort(int *, int, int);10 11 int main(void)12 {13 int i;14 int a[6] = {
5, 8, 7, -9, 0, 6};15 QuickSort(a, 0, 5);//第二个参数是第一个元素的下标,第三个参数是最后一个元素的下标16 17 for (i=0; i<6; i++)18 printf("%d ", a[i]);19 printf("\n");20 21 return 0;22 }23 24 /*25 函数:void QuickSort(参数1, 参数2, 参数3)26 功能:快速排序的循环27 参数:1.数组地址。2.某一半元素的低位。3.高位28 返回值:无29 */30 void QuickSort(int * a, int low, int high)31 {32 int pos;33 if (low < high)34 {35 pos = FindPos(a, low, high);36 QuickSort(a, low, pos-1);37 QuickSort(a, pos+1, high);38 }39 }40 41 /*42 函数:int FindPos(参数1, 参数2, 参数3)43 功能:查找a[low]的位置44 参数:1.数组地址。2.某一半元素的低位。3.高位45 返回值:a[low]的位置,int型46 */47 int FindPos(int * a, int low, int high)48 {49 int val = a[low];50 while (low < high)51 {52 while (low < high && a[high] > val)//注意此处low < high不能丢!53 high--;54 a[low] = a[high];55 while (low < high && a[low] < val)56 low++;57 a[high] = a[low];58 }//循环终止时,low = high59 a[low] = val;60 return low;61 }62 63 /*64 在VC++6.0输出结果是:65 ----------------------------66 -9 0 5 6 7 867 Press any key to continue68 ----------------------------69 */

 

转载于:https://www.cnblogs.com/moon1992/p/4855239.html

你可能感兴趣的文章
高效的SQL语句翻页代码
查看>>
NPAPI插件开发详细记录:用VS2010开发NPAPI插件步骤
查看>>
linux下Makefile全解(二)
查看>>
XMLHTTP.readyState的五种状态
查看>>
百度外卖 前端面试题
查看>>
record for json formate site
查看>>
查询树形的根节点
查看>>
HDU 1272 小希的迷宫
查看>>
hdu 5412 CRB and Queries(整体二分)
查看>>
CentOS如何安装linux桌面?
查看>>
Speech and Booth Demo in Maker Faire Shenzhen 2018
查看>>
bzoj 1670: [Usaco2006 Oct]Building the Moat护城河的挖掘
查看>>
bzoj 2281: [Sdoi2011]黑白棋
查看>>
bzoj 4475: [Jsoi2015]子集选取
查看>>
团队开发7
查看>>
java之静态代理与动态代理
查看>>
软件测试2019:第四次作业
查看>>
201571030335 + 小学四则运算练习软件项目报告
查看>>
不用代码就能实现get与post
查看>>
gdb基本调试命令
查看>>