Pagini recente » Cod sursa (job #2279925) | Cod sursa (job #2686068) | Cod sursa (job #2601976) | Cod sursa (job #2469247) | Cod sursa (job #1623958)
#include <cstdio>
using namespace std;
int v[500005];
void schimba( int &a, int &b ){
int c;
c = a;
a = b;
b = c;
}
void quick_sort( int st, int dr ){
if( st >= dr ) return ;
int i , j, piv;
schimba( v[st], v[(st+dr)/2] );
piv = v[st];
i = st + 1;
j = dr;
while( i <= j ){
while( i <= j && v[i] <= piv ) i++;
while( j >= i && v[j] >= piv ) j--;
if( i <= j ){
schimba( v[i], v[j] );
i++;
j--;
}
}
i--;
schimba( v[i], v[st] );
quick_sort( st, i - 1 );
quick_sort( i + 1, dr );
}
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
int n, i, j;
scanf("%d",&n);
for( i = 1; i <= n; ++i ){
scanf("%d",&v[i]);
}
quick_sort( 1, n );
for( i = 1; i <= n; ++i )
printf("%d ",v[i]);
return 0;
}