Pagini recente » Cod sursa (job #2694542) | Cod sursa (job #648820) | Cod sursa (job #620308) | Cod sursa (job #813510) | Cod sursa (job #659013)
Cod sursa(job #659013)
#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 quick_sort(int st, int dr)
{
if(st < dr)
{
int q = part(st, dr);
quick_sort(st, q);
quick_sort(q + 1, dr);
}
}
int main()
{
freopen("algsort.in", "r", stdin);
freopen("algsort.out", "w", stdout);
scanf("%d",&n);
a.push_back(0);
for(i = 0; i < n;i ++)
{
scanf("%d", &x);
a.push_back(x);
}
quick_sort(1, n);
for(i = 1; i <= n; i ++)
printf("%d ", a[i]);
printf("\n");
return 0;
}