C 语言经典题目系列解决方案(10)-快排
2010-09-16 16:56
399 查看
main(){ int i,n=10; int numbers[10]; int partition(int a[],int low,int high); void quickSort(int a[],int low,int high); //生成数组 for (i=0;i<n;i++){ numbers[i]=(int)rand()%100; printf("%3d",numbers[i]); if (i==n-1) printf("/n"); } quickSort(numbers,0,n-1); //排序后输出 for (i=0;i<n;i++){ printf("%3d",numbers[i]); } getchar(); } //一趟快排 int partition(int a[],int low,int high){ int pivotValue; pivotValue=a[low]; while(low<high){ while(lowpivotValue) high--;//找第一个小于“枢纽值”的,向前挪 a[low]=a[high]; while(low<high && a[low]<pivotValue) low++;//找第一个大于“枢纽值”的,向后挪 a[high]=a[low]; } a[low]=pivotValue; return low; } //递归快排 void quickSort(int a[],int low,int high){ int pivotLoc; if (low<high) // 长度大于1时执行。 { pivotLoc=partition(a,low,high); quickSort(a,low,pivotLoc-1); quickSort(a,pivotLoc+1,high); } }
相关文章推荐
- C 语言经典题目系列解决方案(6)-有序链表的归并
- C 语言经典题目系列解决方案(3)-链表创建与倒置
- C 语言经典题目系列解决方案(1)-报数问题
- C 语言经典题目系列解决方案(4)-Fibonacci
- C 语言经典题目系列解决方案(7)-冒泡排序
- C 语言经典题目系列解决方案(8)-选择排序
- C 语言经典题目系列解决方案(9)-直接插入排序
- C 语言经典题目系列解决方案(11)-折半查找
- C 语言经典题目系列解决方案(5)-gcd问题
- C语言经典题目系列解决方案(2)-统计字符
- C语言经典题目(1-10)
- 嵌入式程序员C语言笔试经典题目
- 网络采集软件核心技术剖析系列(7)---如何使用C#语言搭建程序框架(经典Winform界面,顶部菜单栏,工具栏,左边树形列表,右边多Tab界面)
- C语言经典题目(41-50)
- C/C++语言经典、实用、趣味程序设计编程百例精解 (10)
- 经典C语言程序100例(1-10)----------------转自C语言经典论坛
- C语言经典题目及解题思路
- C语言经典题目(21-30)
- javaSE_8系列博客——Java语言的特性(三)--类和对象(10)--对象的使用
- 华硕主板10系列显卡 ubuntu 系统安装后无法正常进入解决方案