快速排序非递归实现
来源:互联网 发布:大数据运维管理平台 编辑:程序博客网 时间:2024/06/07 00:06
#include<iostream>#include<vector>#include<stack>using namespace std;vector<int> a;class node{public:int low;int high;};int parition(int low,int high){int p=a[low];int i=low;int j=high;if(j>i){while(j>i){while(j>i&&a[j]>p)j--;while(j>i&&a[i]<=p)i++;if(j>i){int temp=a[i];a[i]=a[j];a[j]=temp;}}int temp=a[low];a[low]=a[i];a[i]=temp;return i;}}void q_sort(){stack<node> s;node now;now.low=0;now.high=a.size()-1;s.push(now);while(!s.empty()){node now_n=s.top();s.pop();int p=parition(now_n.low,now_n.high);if(p-now_n.low>1){node now_t;now_t.low=now_n.low;now_t.high=p-1;s.push(now_t);}if(now_n.high-p>1){node now_t;now_t.low=p+1;now_t.high=now_n.high;s.push(now_t);}}}int main(){int n;int t;cin>>n;for(int i=0;i<n;i++){cin>>t;a.push_back(t);}q_sort();for(int i=0;i<n;i++){cout<<a[i]<<" ";}return 0;}
0 0
- 快速排序非递归实现
- 快速排序非递归实现
- 快速排序非递归实现
- 非递归实现快速排序
- 快速排序非递归实现
- 快速排序非递归实现
- 快速排序递归及非递归实现
- 快速排序实现(递归+非递归)
- 快速排序递归与非递归实现
- 快速排序的非递归实现
- php的非递归快速排序实现
- 霍尔快速排序 非递归 C++实现
- 非递归的快速排序实现(转)
- 用栈来实现非递归快速排序。
- 快速排序的非递归实现
- 快速排序的非递归实现
- 快速排序的非递归实现
- 使用非递归实现快速排序
- [BZOJ 4128]Matrix
- Eclipse将普通的项目转成Web项目
- utf8编码转换脚本
- html和css学习二
- 如何使用boost::property_tree表示JSON数组
- 快速排序非递归实现
- android EditText 自动获取焦点并弹出软键盘
- 国外braintree支付手段配置以及使用
- 充分掌握Android Debug Bridge(ADB)
- 今日BBC
- iOS集成构建
- android studio2.0出现的gradle问题,instant Run即时运行不了.
- 静态库和动态库链接分析
- 二进制相关---1