Pagini recente » Cod sursa (job #3261878) | Cod sursa (job #1311702) | Cod sursa (job #2359652) | Cod sursa (job #2777989) | Cod sursa (job #1211968)
#include <iostream>
#include <stdio.h>
using namespace std;
typedef long long ll;
ll n,a[500000 + 100];
void swap(ll i, ll j){
ll aux = a[i];
a[i] = a[j];
a[j] = aux;
}
ll partition(ll a[],ll l, ll r){
ll i, j, p, t;
p = a[r];
i = l;
for(j = l; j <= r-1; j++) {
if(a[j] <= p) {
swap(i,j);
i++;
}
}
swap(i,r);
return i;
}
void quick(ll a[],ll p, ll q){
if(p < q){
ll m = partition(a,p,q);
quick(a,p,m - 1);
quick(a,m + 1, q);
}
}
int main(){
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%lld",&n);
for(unsigned int i = 0; i < n; i++)
scanf("%lld",&a[i]);
quick(a,0,n - 1);
for(unsigned int i = 0; i < n; i++)
printf("%lld ",a[i]);
return 0;
}