Pagini recente » Cod sursa (job #157174) | Cod sursa (job #3143414) | Cod sursa (job #1021764) | Cod sursa (job #175881) | Cod sursa (job #444827)
Cod sursa(job #444827)
//Sa se sorteze crescator un sir cu algoritmul quicksort
#include<fstream>
#define nmax 500001
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int a[nmax],n;
void citire()
{fin>>n;
for(int i=1;i<=n;i++)
fin>>a[i];
}
void afisare()
{for(int i=1;i<=n;i++)
fout<<a[i]<<" ";
}
int poz_pivot(int st,int dr)
{int i=st,j=dr,pivot=a[st];
while(i<j)
{while(j>i && a[j]>=pivot)
j--;
a[i]=a[j];
while(i<j && a[i]<=pivot)
i++;
a[j]=a[i];
}
a[i]=pivot;
return i;
}
void qsort(int st,int dr)
{int p=poz_pivot(st,dr);
if(st<p-1) qsort(st,p-1);
if(p+1<dr) qsort(p+1,dr);
}
int main()
{citire();
qsort(1,n);
afisare();
fin.close();
fout.close();
return 0;
}