Cod sursa(job #1493091)

Utilizator deea101Andreea deea101 Data 28 septembrie 2015 18:40:05
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream>
#include <vector>
#include <string>
using namespace std;

void merge_sort(vector <int> &v, vector <int> &temp, int l, int r) {
	if(r - l <= 1) return;
	int m = l + (r-l)/2;
	merge_sort(v, temp, l, m);
	merge_sort(v, temp, m, r);
	
	int i = l, j = m, k;
	
	for(k = l; k < r; k++)
		if(j == r || (i < m && v[i]<=v[j])) {
			temp[k] = v[i];
			i++;
		}
		else {
			temp[k] = v[j];
			j++;
		}
		
	for(k = l; k < r; k ++) 
		v[k] = temp[k];
}

#include <fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");

int main() {
	
	int N, x, i;
	f>>N;
	vector <int> v, temp(N);
	while(N--) {
		f>>x;
		v.push_back(x);
	}
	merge_sort(v, temp, 0, v.size());
	
	for(i=0; i<v.size(); i++) 
		g<<v[i]<<' ';
}