Pagini recente » Cod sursa (job #824150) | Cod sursa (job #2085215) | Cod sursa (job #2334104) | Cod sursa (job #1466079) | Cod sursa (job #2906460)
#include <fstream>
using namespace std;
ifstream fin ("algsort.in");
ofstream fout ("algsort.out");
const int MAX = 500001;
int v[MAX],v1[MAX];
void mergeSort(int v[], int st, int dr) {
if (st < dr) {
int mij = (st +dr) / 2;
mergeSort(v, st, mij);
mergeSort(v, mij + 1, dr);
int i = st, j = mij + 1, k = st;
while(i <= mij || j <= dr)
{
if(j > dr || (i <= mij && v[i] < v[j]))
v1[k++] = v[i++];
else
v1[k++] = v[j++];
}
for(i = st; i <= dr; i++)
v[i] = v1[i];
}
}
void printvect(int v[], int N) {
for (int i = 1; i <= N; i++)
fout << v[i] << " ";
}
int main()
{
int N;
fin >> N;
for (int i = 1; i <= N; i++)
fin >> v[i];
mergeSort(v,1,N);
printvect(v, N);
return 0;
}