Cod sursa(job #1011607)

Utilizator bersekerHoinaru Mihai berseker Data 17 octombrie 2013 00:09:22
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
#include <iostream>
#include <fstream>
using namespace std;
void inter(int a[10000],int l,int m,int r);
void merge_sort(int a[10000],int l,int r);
void merge_sort(int a[10000],int l,int r)
{
     int m;
     if(l<r)
     {
            m=(l+r)/2;
            merge_sort(a,l,m);
            merge_sort(a,m+1,r);
            inter(a,l,m,r);
     }
}

void inter(int a[],int l,int m,int r)
{
    int b[10000];
    int i=l,j=m+1,k=0;
    while(i<=m and j<=r) 
    {
        if (a[i] <= a[j])
            b[k++] = a[i++];
        else
            b[k++] = a[j++];
    }
    while (i<=m)
        b[k++] = a[i++];
    while (j<=r)
        b[k++] = a[j++];
    k--;
    while (k >= 0) 
    {
        a[l+k]=b[k];
        k--;
    }
}


int main()
{
    int n,v[100];
    cin>>n;
    for (int i=1;i<=n;i++)
     cin>>v[i];
    merge_sort(v,1,n);
    for (int i=1;i<=n;i++)
     cout<<v[i]<<" ";
    system("pause");
}