Cod sursa(job #2512281)

Utilizator TUdOr73Minciunescu Tudor TUdOr73 Data 20 decembrie 2019 20:19:34
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.95 kb
#include <iostream>
#include <fstream>
using namespace std;
int a[500000];
void merge(int l,int mid,int h){
    int i = l;int j = mid+1;
    int b[500000];int p = 0;
    while(i<=mid && j <=h){
        if(a[i] < a[j])
        {
            p++;b[p] = a[i];i++;
        }
        else{
            p++;b[p] = a[j];j++;
        }
    }

    for(;i<=mid;i++){
        p++;b[p] = a[i];
    }
    for(;j<= h;j++){
        p++;b[p] = a[j];
    }
    int q = l;
    for(int k = 1;k<= p;k++){
        a[q] = b[k];
        q++;
    }
}
void mergeSort(int l ,int h){
    if(l < h){
        int mid = (l+h)/2;
        mergeSort(l,mid);
        mergeSort(mid+1,h);
        merge(l,mid,h);
    }

}
int main()
{   ifstream f("algsort.in");
    ofstream g("algsort.out");
    int n,i;
    f>> n;for(i = 1;i<= n;i++){
            f>>a[i];
        }
    mergeSort(1,n);
    for(int k = 1;k<= n;k++)
        g << a[k]<< " ";
    return 0;
}