快速排序算法的实现
2016-01-27 19:48
274 查看
/* 作者:秦时小 专业:计算机科学与技术 学校:咸阳师范学院 2013级 时间:2016.01.27 程序名称:快速排序算法的实现 程序功能: */ #include <stdio.h> //快速排序 //low和high表示的是下标。以中间元素为基准值 void quickSort(int* arr,int low,int high) { if(low>=high) return; int p=(high+low)/2;//p指向中间元素 int key=*(arr+p); int i=low,j=high; while(i<j) { while( *(arr+i)<=key&&i<p)//第一次这里漏写了i<p i++; if(i<p) { *(arr+p)=*(arr+i); p=i; } while(*(arr+j)>key&&j>p)//第一次这里漏写了j>p j--; if(j>p) { *(arr+p)=*(arr+j); p=j; } } *(arr+p)=key; quickSort(arr,low,p-1); quickSort(arr,p+1,high); } int main(void) { int arr[]={5,1,9,2,8,3,6,4,7}; quickSort(arr,0,8); for(int i=0;i<9;i++) { printf("%d ",arr[i]); } printf("\n"); return 0; }
相关文章推荐
- 如何组织构建多文件 C 语言程序(二)
- 快速排序
- 如何写好 C main 函数
- 书评:《算法之美( Algorithms to Live By )》
- 动易2006序列号破解算法公布
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- Lua和C语言的交互详解
- 超大数据量存储常用数据库分表分库算法总结
- C#数据结构与算法揭秘二
- C#冒泡法排序算法实例分析
- C#快速排序算法实例分析
- 算法练习之从String.indexOf的模拟实现开始
- C#算法之关于大牛生小牛的问题
- C#实现的算24点游戏算法实例分析
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言中fchdir()函数和rewinddir()函数的使用详解