Cod sursa(job #2623197)

Utilizator StefansenNegulescu Stefan Stefansen Data 2 iunie 2020 18:57:31
Problema Sortare prin comparare Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.9 kb
#include<iostream>
#include<fstream>
#include<algorithm>
#include<cmath>
#include<vector>
#include<cstring>
using namespace std;

ifstream f("algsort.in");
ofstream g("algsort.out");

const int NR = 500005;
int temp[NR];

void MergeSort(int v[], int l, int r)
{
	if(l < r)
	{
		int mid = (l + r) / 2;
		MergeSort(v, l , mid);
		MergeSort(v, mid + 1 , r);
		int i = l, j = mid + 1, k = 0;
		while( i <= mid && j <= r )
			if( v[i] < v[j])
				temp[++k] = v[i++];
			else
				temp[++k] = v[j++];
		while(i <= mid)
			temp[++k] = v[i++];
		while(j <= r)
			temp[++k] = v[j++];
		for(i = l , j = 1 ; i <= r ; i ++ , j ++)
			v[i] = temp[j];
	}
}

int main()
{

    int n, v[NR];

    f>>n;
    for(int i = 0; i < n; i++)
        f>>v[i];

    MergeSort(v,0,n);

    for(int i = 0; i < n; i++)
        g<<v[i]<<" ";



    f.close();
    g.close();
    return 0;


}