Pagini recente » Cod sursa (job #1384261) | Cod sursa (job #1963020) | Cod sursa (job #2914997) | Cod sursa (job #1206748) | Cod sursa (job #2065694)
#include<fstream>
#include<cstdlib>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int hoare(int a[],int p,int r)
{
int pivot= a[(rand()%r+rand()%r+rand()%r)/3],i,j;
i=p-1;
j=r+1;
while(true){
do{
++i;
}while(a[i]<pivot);
do{
--j;
}while(a[j]>pivot);
if(i>=j)return j;
int aux=a[i];
a[i]=a[j];
a[j]=aux;
}
}
void quicksort(int a[],int p,int r){
if(p<r){
int q=hoare(a,p,r);
quicksort(a,p,q);
quicksort(a,q+1,r);
}
}
int main()
{
int v[500001],i,n;
f>>n;
for(i=0;i<n;i++)
f>>v[i];
quicksort(v,0,n-1);
for(i=0;i<n;i++)
g<<v[i]<<" ";
return 0;
}