Pagini recente » Cod sursa (job #1809524) | Cod sursa (job #1827006) | Cod sursa (job #2628908) | Cod sursa (job #445573) | Cod sursa (job #2805634)
#include <bits/stdc++.h>
#define nmax 500005
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int a[nmax],n;
void read()
{
fin>>n;
for(int i=1;i<=n;i++)
fin>>a[i];
}
int pivot(int left,int right)
{
int pivot=a[left],i=left,j=right;
while(i<j)
{
if(a[i]>a[j])
swap(a[i],a[j]);
if(pivot==a[i])
j--;
else
i++;
}
return i;
}
void quickSort(int left,int right)
{
if(left>=right)
return ;
int p=pivot(left,right);
quickSort(left,p-1);
quickSort(p+1,right);
}
void print()
{
for(int i=1;i<=n;i++)
fout<<a[i]<<" ";
}
int main()
{
read();
quickSort(1,n);
print();
return 0;
}