Pagini recente » Cod sursa (job #2300228) | Cod sursa (job #139975) | Cod sursa (job #339669) | Cod sursa (job #3140251) | Cod sursa (job #1051251)
#include <fstream>
#include<ctime>
#include<cstdlib>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
void sw(int &a,int &b)
{
int aux;
aux=a;a=b;b=aux;
}
void qs(int v[],int a,int b)
{
if(a<b)
{
int i,j,q,aux;
q=rand()%(b-a)+a+1;
i=a;j=b;
while(i<j)
{
while(v[j]>=v[q]&&j>i) j--;
sw(v[j],v[q]);q=j;
while(v[i]<=v[q]&&j>i) i++;
sw(v[i],v[q]);q=i;
}
qs(v,a,i-1);
qs(v,i+1,b);
}
}
void citire(int v[],int &n)
{
int i;
f>>n;
for(i=1;i<=n;i++)
f>>v[i];
}
void afisare(int v[],int n)
{
int i;
for(i=1;i<=n;i++)
g<<v[i]<<' ';
}
int main()
{
srand(time(NULL));
int n,v[500001];
citire(v,n);
qs(v,1,n);
afisare(v,n);
f.close();
g.close();
return 0;
}