Mai intai trebuie sa te autentifici.
Cod sursa(job #1553275)
Utilizator | Data | 19 decembrie 2015 15:25:27 | |
---|---|---|---|
Problema | Sortare prin comparare | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.71 kb |
#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,j);
quick(i,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;
}