Pagini recente » Cod sursa (job #2571513) | Cod sursa (job #1915272) | Cod sursa (job #3178637) | Cod sursa (job #493287) | Cod sursa (job #412359)
Cod sursa(job #412359)
#include <iostream>
#include <fstream>
using namespace std;
long int x[500001];
void swap(int p, int q)
{
long temp=x[p]; x[p]=x[q]; x[q]=temp;
}
int pivot(int p, int q)
{
while(p<q)
{
while(x[p]<=x[q]&&p<q)
q--;
if(p<q)
swap(p,q);
while(x[p]<=x[q]&&p<q)
p++;
if(p<q)
swap(p,q);
}
return p;
}
void sorteaza(int p, int q)
{
int k=pivot(p,q);
if(k>p+1)
sorteaza(p,k-1);
if(k<q-1)
sorteaza(k+1,q);
}
int main()
{
fstream f("algsort.in",ios::in), g("algsort.out",ios::out);
int n,i;
f>>n;
for(i=1;i<=n;i++)
f>>x[i];
f.close();
sorteaza(1,n);
for(i=1;i<=n;i++)
g<<x[i]<<" ";
g.close();
return 0;
}