Pagini recente » Cod sursa (job #215354) | Cod sursa (job #227357) | Cod sursa (job #1929551) | Cod sursa (job #2963186) | Cod sursa (job #311198)
Cod sursa(job #311198)
#include<iostream>
#include<stdio.h>
#include<vector>
#include<algorithm>
#include<time.h>
#include<stdlib.h>
using namespace std;
vector <int> a;
int n,i,x;
void QSort(int st,int dr)
{
int i=st,j=dr,aux;
int r=rand()%(dr-st)+1+st;
swap(a[st],a[r]);aux=a[r];
do
{
while(i<=j&&a[i]<aux) i++;
while(i<=j&&a[j]>aux) j--;
if(i<=j) swap(a[i++],a[j--]);
}while(i<=j);
if(i<dr) QSort(i,dr);
if(st<j) QSort(st,j);
}
inline void Cout(int x)
{
printf("%d ",x);
}
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
srand(time(NULL));
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&x);
a.push_back(x);
}
QSort(0,n-1);
for_each(a.begin(),a.end(),Cout);
printf("\n");
return 0;
}