快排
2015-08-02 16:42
239 查看
今天忙里偷闲~重新学习了下快排~这个代码势必要能做到分分钟写出来~而且真的超级简单
· 不稳定排序
· 分治策略
该方法的基本思想是:
1.先从数列中取出一个数作为基准数。
2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。
3.再对左右区间重复第二步,直到各区间只有一个数。
keer加油↖(^ω^)↗
· 不稳定排序
· 分治策略
该方法的基本思想是:
1.先从数列中取出一个数作为基准数。
2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。
3.再对左右区间重复第二步,直到各区间只有一个数。
#include <iostream> using namespace std; void quicksort(int a[],int,int); int main() { int a[]={34,65,12,43,67,5,78,10,3,70},k; int len = sizeof(a)/sizeof(int); cout<<"the original:"; for (k=0;k<len;k++) { cout<<a[k]<<","; } cout<<endl; quicksort(a,0,len-1); //len-1 cout<<"the sorted:"; for (k=0;k<len;k++) { cout<<a[k]<<","; } cout<<endl; system("pause"); } void quicksort(int a[],int l,int r) { if (l<r) { int i=l,j=r,x=a[l]; while (i<j) { while (a[j]>=x && i<j) j--; //从右向左,如果大于X,j - - if (i<j) a[i++]=a[j]; while (a[i]<x && i<j) i++; if (i<j) a[j--]=a[i]; } a[i]=x; //勿忘 quicksort(a,l,i-1); quicksort(a,i+1,r); } }
keer加油↖(^ω^)↗
相关文章推荐
- python抓包解包
- hdu5340 Three Palindromes(manacher算法)
- 可滑动关闭的对话框(一)
- java学习总结及心得体会
- JQuery隐藏,显示div的方法
- 搜索引擎整体结构图以及描述
- 华为是怎样研发的(12)——FMEA分析
- LightOJ_1422_HalloweenCostumes
- ArcGIS for Service中JavaScript预览在内网环境无法使用
- 九度OJ 题目1012:畅通工程 (并查集,连通子图)
- 客户管理系统案例总结
- 高清屏的背景图片适配
- C++ 常见面试题目 (二)
- cassandra counter 类型使用注意事项
- HDU 2255 — 奔小康赚大钱 KM入门题
- 服务层的必要性
- TCP建立连接和释放的过程,及TCP状态变迁图
- 第一篇博文:PHP函数原型中的可选参数写法为什么这么写?
- 用python加cPAMIE加pyinstaller为我柱哥点赞
- 【leetcode】Implement Queue using Stacks