Cod sursa(job #1568211)

Utilizator cretucalinCretu Calin cretucalin Data 13 ianuarie 2016 23:06:35
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 1.2 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream f("algsort.in");
ofstream g("algsort.out");
void merge(int arr[], long int size1, 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[], long 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);
    }
}
long int n;
int v[1000];
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;
}