Pagini recente » Cod sursa (job #2568430) | Cod sursa (job #637448) | Cod sursa (job #83851) | Cod sursa (job #3252003) | Cod sursa (job #2780030)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("algsort.in");
ofstream fout ("algsort.out");
int n,v[500001];
void Quicksort (int left, int right)
{
int len=right-left+1;
if (len<=1)return;
if (len==2)
{
if (v[left]>v[right])
swap (v[left],v[right]);
return;
}
swap (v[left],v[right]);
int i=left,j=right-1;
while (i<j)
{
while (v[i]<v[right] and i<j)
i++;
while (v[j]>v[right] and i<j)
j--;
swap (v[i],v[j]);
}
i=1;
while (v[i+1]<=v[right])
i++;
i++;
if (i>right)
i=right;
swap (v[i],v[right]);
Quicksort(left,i-1);
Quicksort(i+1,right);
}
int main()
{
fin >>n;
for (int i=1;i<=n;++i)
fin >>v[i];
Quicksort (1,n);
for (int i=1;i<=n;++i)
fout <<v[i]<<' ';
return 0;
}