Pagini recente » Cod sursa (job #2787570) | Cod sursa (job #1899665) | Cod sursa (job #5170) | Cod sursa (job #31212) | Cod sursa (job #2294044)
#include <fstream>
#define N_MAX 500005
using namespace std;
ifstream in { "algsort.in" };
ofstream out { "algsort.out" };
int n;
int a[N_MAX], temp[N_MAX];
void merge_sort(int stg, int drp) {
if (stg == drp)
return;
int mij { (stg + drp) / 2 };
merge_sort(stg, mij);
merge_sort(mij + 1, drp);
for (int i { stg }, j { mij + 1 }, k { stg }; i <= mij || j <= drp; ++k)
if (j > drp || (i <= mij && a[i] < a[j]))
temp[k] = a[i++];
else
temp[k] = a[j++];
for (int i { stg }; i <= drp; ++i)
a[i] = temp[i];
}
int main() {
in >> n;
for (int i { 1 }; i <= n; ++i)
in >> a[i];
merge_sort(1, n);
for (int i { 1 }; i <= n; ++i)
out << a[i] << ' ';
}