Pagini recente » Cod sursa (job #1450345) | Rating aw3cqw34cq45caw345cac5a (a13x4nd7u) | Cod sursa (job #2566597) | Cod sursa (job #1182523) | Cod sursa (job #791061)
Cod sursa(job #791061)
//
// main.cpp
// Merge Sort
//
// Created by Ioana Teoc on 9/22/12.
// Copyright (c) 2012 Ioana Teoc. All rights reserved.
//
#include <iostream>
#include <stdio.h>
# define NMAX 500005
unsigned int V[NMAX], n;
void mergeSort(int l, int r){
if(l == r) return;
int B[NMAX];
int m = (l + r) / 2;
mergeSort(l, m);
mergeSort(m+1, r);
for(int i = l, j = m+1, k = 0; i <= m || j <= r; k++){
if(V[i] <= V[j] || j > r)
B[k] = V[i++];
else
B[k] = V[j++];
}
for(int i = l; i <= r; i++)
V[i] = B[i-l];
}
int main()
{
freopen("algsort.in", "r", stdin);
freopen("algsort.out", "w", stdout);
scanf("%d", &n);
for(int i = 0; i < n; i++){
scanf("%d", &V[i]);
}
mergeSort(0, n-1);
for(int i = 0; i < n; i++){
printf("%d ", V[i]);
}
}