Pagini recente » Cod sursa (job #3163273) | Cod sursa (job #380134) | Cod sursa (job #2511522) | Cod sursa (job #2359855) | Cod sursa (job #3211144)
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int n , v[100005], aux[100005];
void merge_sort(int st, int dr) {
if (st < dr) {
int m = (st + dr) / 2;
merge_sort(st , m);
merge_sort(m + 1 , dr);
int i = st, j = m + 1, k = 0;
while (i <= m && j <= dr)
if (v[i] < v[j])
aux[++k] = v[i++];
else
aux[++k] = v[j++];
while (i <= m)
aux[++k] = v[i++];
while (j <= dr)
aux[++k] = v[j++];
for (i = st, j = 1; i <= dr; i++, j++)
v[i] = aux[j];
}
}
int main() {
fin >> n;
for (int i = 0; i < n; i++)
fin >> v[i];
merge_sort(0, n - 1);
for (int i = 0; i < n; i++)
fout << v[i] << " ";
return 0;
}