Pagini recente » Cod sursa (job #1456475) | Cod sursa (job #2592826) | Cod sursa (job #1775188) | Cod sursa (job #3130381) | Cod sursa (job #1568211)
#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;
}