Pagini recente » Cod sursa (job #3245604) | Cod sursa (job #575010) | Cod sursa (job #3256273) | Cod sursa (job #1354719) | Cod sursa (job #316402)
Cod sursa(job #316402)
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<vector>
using namespace std;
vector <int> a;
int n,x,i;
int part(int st,int dr)
{
int i=st-1,j=dr+1,q=a[(st+dr)/2];
while(1)
{
do
{
i++;
}while(a[i]<q);
do
{
j--;
}while(a[j]>q);
if(i<j)
swap(a[i],a[j]);
else
return j;
}
return 'nk';
}
void QSort(int st,int dr)
{
if(st<dr)
{
int q=part(st,dr);
QSort(st,q);
QSort(q+1,dr);
}
}
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%d",&n);a.push_back(1);
for(i=0;i<n;i++)
{
scanf("%d",&x);
a.push_back(x);
}
QSort(1,n);
for(i=1;i<=n;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}