Pagini recente » Cod sursa (job #2074884) | Cod sursa (job #896600) | Cod sursa (job #2277364) | Cod sursa (job #643735) | Cod sursa (job #1572656)
#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;
}