Pagini recente » Cod sursa (job #242883) | Cod sursa (job #1951644)
#include<iostream>
#include<fstream>
#include<stdlib.h>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int a[500002];
int selectare(int a[],int p,int r)
{
int i,j,di,dj;
int aux;
i=p;j=r;
di=1;dj=0;
while(i<j){
if(a[i]>a[j]){
aux=a[i];
a[i]=a[j];
a[j]=aux;
di=1-di;
dj=1-dj;
}
i=i+di;
j=j-dj;
}
return i;
}
void qsort(int a[],int p,int r)
{
int q;
if(p<r){
q=selectare(a,p,r);
qsort(a,p,q-1);
qsort(a,q+1,r);
}
}
int main()
{
int n,i,aux;
long long p,q;
fin>>n;
for(i=1;i<=n;i++){
fin>>a[i];
}
for(i=1;i<=n;i++){
p=rand();
p=(p*rand())%n+1;
q=rand();
q=(q*rand())%n+1;
aux=a[p];
a[p]=a[q];
a[q]=aux;
}
qsort(a,1,n);
for(i=1;i<=n;i++){
fout<<a[i]<<" ";
}
return 0;
}