Pagini recente » Cod sursa (job #1024416) | Statistici totea vlad gabriel (darkmetin45) | Cod sursa (job #830664) | Istoria paginii utilizator/motoc00 | Cod sursa (job #1569084)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
void merge(int arr[], unsigned long size1, unsigned long low, unsigned long middle, unsigned long high)
{
int *temp;
temp=new int[size1];
for (unsigned long i=low; i<=high; i++)
{
temp[i]=arr[i];
}
unsigned long i=low;
unsigned long j=middle+1;
// int temp[size1];
unsigned long 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[], unsigned long size1, unsigned long low, unsigned long high)
{
if(low< high)
{
unsigned long 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[500000];
int main()
{
f>>n;
for(unsigned long i = 0; i<n;i++)
f>>v[i];
mergeSort(v,n,0,n-1);
for(unsigned long i = 0; i<n;i++)
g<<v[i]<<" ";
f.close();
g.close();
return 0;
}