Cod sursa(job #1979921)

Utilizator rebecca0312Andrei Rebecca rebecca0312 Data 11 mai 2017 17:59:43
Problema Sortare prin comparare Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include<cstdio>
using namespace std;
const int NMAX=105;
int v[NMAX],aux[NMAX];
void interclasare(int st, int dr, int mij){
    int ind,i=st,j=mij+1;
    for(ind=st;ind<=dr;ind++)
        if((v[i]<=v[j] && i<=mij) || j>dr)
            aux[ind]=v[i++];
        else
            aux[ind]=v[j++];
    for(i=st;i<=dr;i++)
        v[i]=aux[i];
}
void merge_sort(int st, int dr){
    int mij=(st+dr)/2;
    if(st>=dr)
        return ;
    merge_sort(st, mij);
    merge_sort(mij+1, dr);
    interclasare(st, dr, mij);
}
int main(){
    freopen("algsort.in","r",stdin);
    freopen("algsort.out","w",stdout);
    int n,i;
    scanf("%d", &n);
    for(i=1;i<=n;i++)
        scanf("%d", &v[i]);
    merge_sort(1, n);
    for(i=1;i<=n;i++)
        printf("%d ", v[i]);
    return 0;
}