Cod sursa(job #603977)

Utilizator popacamilpopa camil popacamil Data 19 iulie 2011 16:53:22
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include<cstdio>
using namespace std;
int n,v[500005],x[500005];
void merge_sort(int lt,int rt){
	int mid=(lt+rt)>>1,i,j,k;
	if(lt==rt){
		return;
	}
	merge_sort(lt,mid);
	merge_sort(mid+1,rt);
	for( i = lt, j = mid+1, k = lt; i <= mid || j <= rt; )
        if( j > rt || (i <= mid && v[i] < v[j]) )
            x[ k++ ] = v[ i++ ];
        else
            x[ k++ ] = v[ j++ ];
    for( k = lt; k <= rt; k++ )
        v[k] = x[k];
}
int main(){
	freopen("algsort.in","r",stdin);
	freopen("algsort.out","w",stdout);
	scanf("%d",&n);
	
	for(int i=1;i<=n;++i){
		scanf("%d",&v[i]);
	}
	merge_sort(1,n);
	for(int i=1;i<=n;++i){
		printf("%d ",v[i]);
	}
	return 0;
}