快排
2016-06-16 16:31
274 查看
//Quick sort #include<stdio.h> #include<stdlib.h> #include<string.h> void quickSort(int *ipBuf,int iLow,int iHigh); int change(int *ipBuf,int iLow,int iHigh); void main() { int ipBuf[20]={0},iSize=0; char *cpTemp=malloc(50); gets(cpTemp); while(cpTemp[iSize]) { ipBuf[iSize]=cpTemp[iSize++]-48; } quickSort(ipBuf,0,iSize-1); free(cpTemp); } int change(int *ipBuf,int iLow,int iHigh) { int iKey=ipBuf[iLow]; while(iLow<iHigh) { while(iLow<iHigh && ipBuf[iHigh]>=iKey) iHigh--; if(iLow<iHigh) ipBuf[iLow++]=ipBuf[iHigh]; while(iLow<iHigh && ipBuf[iLow]<=iKey) iLow++; if(iLow<iHigh) ipBuf[iHigh--]=ipBuf[iLow]; } ipBuf[iLow]=iKey; return iLow; } void quickSort(int *ipBuf,int iLow,int iHigh) { int iPivotKey=0; if(iLow<iHigh) { iPivotKey=change(ipBuf,iLow,iHigh); quickSort(ipBuf,iPivotKey+1,iHigh); quickSort(ipBuf,iLow,iPivotKey-1); } }
算法思想强烈推荐:MoreWindows的博客
他把快排算法阐述的非常简单易懂,我只看了一遍就会了,非常感谢这位博主!
相关文章推荐
- 如何组织构建多文件 C 语言程序(二)
- 快速排序
- 如何写好 C main 函数
- C#数据结构之顺序表(SeqList)实例详解
- Lua和C语言的交互详解
- Lua教程(七):数据结构详解
- 解析从源码分析常见的基于Array的数据结构动态扩容机制的详解
- C#快速排序算法实例分析
- C#数据结构之队列(Quene)实例详解
- C#数据结构揭秘一
- C#数据结构之单链表(LinkList)实例详解
- C#递归算法之快速排序
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解
- C语言编程中统计输入的行数以及单词个数的方法
- C语言自动生成enum值和名字映射代码