Pagini recente » Cod sursa (job #2902132) | Cod sursa (job #1098065) | Cod sursa (job #580609) | Cod sursa (job #440778) | Cod sursa (job #3125823)
#include<fstream>
#define dim 500005
using namespace std;
ifstream in ("algsort.in");
ofstream out("algsort.out");
int n, v[dim], aux[dim];
void interclasare(int st, int mid, int dr)
{
int k = 0, i = st, j = mid + 1;
while(i <= mid && j <= dr)
if (v[i] < v[j])
aux[++k] = v[i++];
else
aux[++k] = v[j++];
while(i <= mid)
aux[++k] = v[i++];
while(j <= dr)
aux[++k] = v[j++];
k = 1;
for (int i = st; i <= dr; i++)
v[i] = aux[k++];
}
void mergeSort(int st, int dr)
{
if (st < dr) {
int mid = (st + dr) / 2;
mergeSort(st, mid);
mergeSort(mid+1, dr);
interclasare(st, mid, dr);
}
}
int main()
{
in >> n;
for (int i = 1; i <= n; i++)
in >> v[i];
mergeSort(1, n);
for (int i = 1; i <= n; i++)
out << v[i] << " ";
}