Cod sursa(job #1572656)

Utilizator cretucalinCretu Calin cretucalin Data 19 ianuarie 2016 00:23:34
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.21 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream f("algsort.in");
ofstream g("algsort.out");
void merge( int arr[],  int size1,  short int low,  int middle,  int high)
{
     int *temp;
    temp=new  int[size1];
    for ( int i=low; i<=high; i++)
    {
        temp[i]=arr[i];
    }
     int i=low;
     int j=middle+1;
     int temp[size1];
     int k=low;

    while (i<=middle && j<= high)
    {
        if(temp[i] <= temp [j])
        {
            arr[k]=temp[i];
            i++;
        }
        else
        {
            arr[k]= temp [j];
            j++;
        }
        k++;
    }
    while(i<=middle)
    {
        arr[k]=temp [i];
        k++;
        i++;
    }
}
void mergeSort ( int arr[],  int size1,  int low,  int high)
{
    if(low< high)
    {
        int middle=(low + high)/2;
        mergeSort(arr, size1, low, middle);
        mergeSort(arr,size1, middle+1,high);
        merge(arr,size1,low,middle,high);
    }
}
int n;
int v[500000];
int main()
{
    f>>n;
    for( int i = 0; i<n;i++)
      f>>v[i];
    mergeSort(v,n,0,n-1);
    for(int i = 0; i<n;i++)
        g<<v[i]<<" ";
    f.close();
    g.close();
    return 0;
}