Pagini recente » Cod sursa (job #2374796) | Cod sursa (job #2819403) | Cod sursa (job #3125199) | Cod sursa (job #2659342) | Cod sursa (job #1553273)
#include <bits/stdc++.h>
#include <cmath>
#include <ctime>
#define LE 500666
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int a[LE];
void quick(int left,int right)
{
if (left>=right) return;
int D=rand()%(right-left+1);
int val=a[left+D],i=left,j=right;
while (i<j)
{
while (a[i]<val&&i<j) ++i;
while (a[j]>val&&i<j) --j;
swap(a[i],a[j]);
++i;
--j;
}
// cout<<val<<"----->";
//for(int it=left;it<=right;++it) cout<<a[it]<<" ";
// cout<<'\n';
quick(left,i-1);
quick(i+1,right);
}
int main()
{
srand(time(0));
int n,i;
f>>n;
for(i=1;i<=n;++i) f>>a[i];
quick(1,n);
for(i=1;i<=n;++i) g<<a[i]<<" ";
return 0;
}