快速排序
2015-06-03 13:54
253 查看
#include <iostream> using namespace std; void Qsort(int a[], int low, int high) { if(low >= high) { return; } int first = low; int last = high; int key = a[first];/*用字表的第一个记录作为枢轴*/ while(first < last) { while(first < last && a[last] >= key) { --last; } a[first] = a[last];/*将比第一个小的移到低端*/ while(first < last && a[first] <= key) { ++first; } a[last] = a[first]; /*将比第一个大的移到高端*/ } a[first] = key;/*枢轴记录到位*/ Qsort(a, low, first-1); Qsort(a, first+1, high); } int main() { int a[] = {57, 68, 59, 52, 72, 28, 96, 33, 24}; Qsort(a, 0, sizeof(a) / sizeof(a[0]) - 1);/*这里原文第三个参数要减1否则内存越界*/ for(int i = 0; i < sizeof(a) / sizeof(a[0]); i++) { cout << a[i] << ""; } return 0; }/*参考数据结构p274(清华大学出版社,严蔚敏)*/
相关文章推荐
- Flex builder经常会抛出:进程已终止,没有建立到调试器的连接。error while loading initial content的解决方法
- EL表达式
- js判断字符串以指定字符串结尾/网上整理
- 谈异常控制流
- FatMouse' Trade
- iOS开发UI基础—31在UITableview的应用中使用动态单元格来完成app应用程序管理界面的搭建
- C++实现事件机制
- NYOJ 76 超级台阶
- BC 2015年百度之星程序设计大赛 - 初赛(1)(矩形面积-旋转卡壳)
- 【转】Linux中变量$#,$@,$0,$1,$2,$*,$$,$?的含义
- quick-cocos2d-x游戏开发【7】——scheduler 定时器
- BMI身体质量指数计算公式
- XenDesktop 7.5域账户登录名更改后,DDC Catalog中显示原有登录名,如何同步
- 比较两个DataTable内容是否相等,先是比数量,数量相等就比内容
- 利用函数计算最高分和平均分
- 比较两个DataTable内容是否相等,先是比数量,数量相等就比内容
- Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解
- myBatis 官方参考手册
- eclipse+gradle+gretty的web项目运行命令
- * failed to start daemon *