C语言数据结构 快速排序实例详解
C语言数据结构快速排序实例详解
一、快速排序简介
快速排序采用分治的思想,第一趟先将一串数字分为两部分,第一部分的数值都比第二部分要小,然后按照这种方法,依次对两边的数据进行排序。
二、代码实现
#include/*将两个数据交换*/ voidswap(int*Ina,int*Inb) { inttemp=*Ina; *Ina=*Inb; *Inb=temp; } /*进行一趟的快速排序,把一个序列分为两个部分*/ intgetPartion(int*InArry,intInBegin,intInEnd) { /*刚开始的分隔线是第一个*/ intpart=InBegin; intindex=0; if(InEnd>=InBegin) { part=InBegin; for(index=InBegin+1;index<=InEnd;index++) { if(InArry[InBegin]>=InArry[index]) { /*交换位置*/ swap(&InArry[part+1],&InArry[index]); part++; } } /*把第一个数放到part处去*/ swap(&InArry[InBegin],&InArry[part]); returnpart; } } /*快速排序函数 *InArry:输入的数组 *InBegin:数组的开始 *InEnd:数组的结束 */ voidquickSort(int*InArry,intInBegin,intInEnd) { if(InArry==NULL||InEnd<=InBegin) { return; } intpart=0; part=getPartion(InArry,InBegin,InEnd); /*递归调用*/ quickSort(InArry,0,part-1); quickSort(InArry,part+1,InEnd); } intmain() { inta[]={49,38,65,97,76,13,27}; intindex=0; intlen=sizeof(a)/sizeof(int); /*先遍历打印一下数组的元素*/ for(index=0;index 以上就是使用C语言数据结构快速排序的实例详解,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!