Pagini recente » Cod sursa (job #1320619) | Cod sursa (job #2225402) | Cod sursa (job #2873207) | Cod sursa (job #2715981) | Cod sursa (job #1747667)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream f ("algsort.in");
ofstream t ("algsort.out");
vector <int> v,v2;
int n;
void mergesort(int low,int high){
if (high>low){
int mid=(low+high)/2;
mergesort(low,mid);
mergesort(mid+1,high);
int i,k,j;
i = k =low;
j = mid + 1;
while (i <= mid or j <= high)
if (j > high or (i <= mid and v[i] < v[j]))
v2[k ++] = v[i ++];
else v2[k ++] = v[j ++];
for (k = low; k <= high; ++k)
v[k] = v2[k];
}
}
void citire(){
f>>n;
v.resize(n);
v2.resize(n);
for (int i=0;i<n;++i)
f>>v[i];
}
inline void afisare(){
for (int i=0;i<n;++i)
t<<v[i]<<" ";
}
int main()
{
citire();
mergesort(0,n-1);
afisare();
return 0;
}