快速排序:
http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Index/problemdetail/pid/3491.html
#include <iostream>
#include<bits/stdc++.h>
using namespace std;
int a[900000];
void quicksort(int l,int r)
{
if(l>r)return;
int i = l;
int j = r;
int tmp = a[l];
while(i<j){
while(i<j&&a[j]>=tmp)j--;
while(i<j&&a[i]<=tmp)i++;
if(i<j)swap(a[i],a[j]);
}
swap(a[i],a[l]);
quicksort(l,i-1);
quicksort(i+1,r);
}
int main()
{
int n;
while(cin>>n)
{
for(int i=1; i<=n; i++)
{
cin>>a[i];
}
quicksort(1,n);
int top = 1;
for(int i=1; i<=n; i++)
{
if(top)top = 0;
else cout<<" ";
cout<<a[i];
}
cout<<endl;
}
return 0;
}一趟快排:
#include <iostream>
#include<bits/stdc++.h>
using namespace std;
int a[900000];
int top,n;
void quicksort(int l,int r)
{
if(l>r)return;
int i = l;
int j = r;
int tmp = a[l];
while(i<j){
while(i<j&&a[j]>=tmp)j--;
a[i] = a[j];
while(i<j&&a[i]<=tmp)i++;
a[j] = a[i];
//if(i<j)swap(a[i],a[j]);
}
// swap(a[i],a[l]);
a[i] = tmp;
// for(int i=1;i<=n;i++){
// cout<<a[i]<<" ";
// }
// cout<<endl;
// quicksort(l,i-1);
// quicksort(i+1,r);
}
bool cmp(int l,int r){
top++;
if(top>=0){
for(int i=1;i<=n;i++){
cout<<a[i]<<" ";
}
cout<<endl;
}
// cout<<l<<" "<<r<<endl;
return l<r;
}
int main()
{
// int n;
while(cin>>n)
{
for(int i=1; i<=n; i++)
{
cin>>a[i];
}
quicksort(1,n);
// sort(a+1,a+1+n,cmp);
int ttop = 1;
for(int i=1; i<=n; i++)
{
if(ttop)ttop = 0;
else cout<<" ";
cout<<a[i];
}
cout<<endl;
}
return 0;
}