快排
2015-05-31 15:12
363 查看
int part(int *x, int p, int q){ int pivot = x[p]; int i = p; int j = p+1; int temp = 0; for(j = p+1; j <= q; j++){ if(x[j] < pivot){ i++; temp = x[i]; x[i] = x[j]; x[j] = temp; } } x[p] = x[i]; x[i] = pivot; return i; } int quickSort(int *x, int p, int q){ if(p < q){ int r = part(x, p, q); quickSort(x, p, r-1); quickSort(x, r+1, q); } return 0; } int test(void){ int x[] = {3,2,1,6,3,7,5,1,9,21,97,32,5,4}; int n = (sizeof x)/4; quickSort(x,0,n-1); for(int i = 0; i < n; i++) cout<<x[i]<<endl; return 0; }
相关文章推荐
- 二分匹配的常用建图方法
- JS——DOM小结(二)操作节点
- java io操作整理
- ath9k中的EEPROM
- java复习(五)
- 沟通的艺术与处世的智慧 读书笔记
- TCP/IP 笔记 1.2 链 路 层
- cocos2dx 中各种运动和速度
- java架构解密——深入再造AOP
- Lucene基础(二)--索引的操作
- C#面试常见题目源代码汇总
- ImageView的布局及高度设置
- Windows平台下Python2.7中pip的安装方法
- 用python多线程抓取网站图片,速度极快
- 黑马程序员——IO的使用
- 测试计划
- Arduino数字电路中的高低电平~~~
- Internal Sorting: Quicksort-2: Sorting by Exchanging
- Project Euler:Problem 20 Factorial digit sum
- Dijkstra算法java现实