Pagini recente » Cod sursa (job #1389624) | Cod sursa (job #848863) | Cod sursa (job #2487336) | Cod sursa (job #1898819) | Cod sursa (job #662760)
Cod sursa(job #662760)
#include<fstream>
#include<cstdlib>
#define maxn 500000
using namespace std;
int i, n, v[maxn];
void swap(int &a, int &b)
{int aux=a;
a=b;
b=aux;
}
void quicksort(int v[], int start, int end)
{int i=start;
int j=end;
int pivot=v[i+rand()%(j-i)];
while(i<=j)
{while(v[i]<pivot)
i++;
while(v[j]>pivot)
j--;
if(i<=j)
{swap(v[i], v[j]);
i++;
j--;
}
}
if(start<j)
quicksort(v, start, j);
if(i<end)
quicksort(v, i, end);
}
int main()
{freopen("algsort.in", "r", stdin);
freopen("algsort.out", "w", stdout);
scanf("%d", &n);
for(i=0; i<n; i++)
scanf("%d", &v[i]);
srand(time(NULL));
quicksort(v, 0, n-1);
for(i=0; i<n; i++)
printf("%d ", v[i]);
return 0;
}