#include<iostream>
#include<vector>
#include<stack>
using namespace std;
void quick_sort(vector<int> &v,int len){
stack<int> left,right;
left.push(0);
right.push(len);
while(!left.empty()){
int l=left.top(),r=right.top();
left.pop();right.pop();
if(l>=r)continue;
int mid=v[l];
int i=l,j=r;
while(i<j){
while(i<j&&v[j]>=mid)j--;
while(i<j&&v[i]<=mid)i++;
if(i<j)swap(v[i],v[j]);
}
v[l]=v[i];
v[i]=mid;
left.push(l);
left.push(i+1);
right.push(i-1);
right.push(r);
}
}
int main(){
vector<int> v;
int input;
while(cin>>input)v.push_back(input);
quick_sort(v,v.size()-1);
for(auto i:v)cout<<i<<endl;
}
快速排序(非递归)
最新推荐文章于 2024-10-15 19:28:18 发布