Cod sursa(job #2663994)

Utilizator vali_27Bojici Valentin vali_27 Data 27 octombrie 2020 18:55:18
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <random>
#define NMAX 500001

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

int n, v[NMAX], w[NMAX];

void quicksort(int v[],int st,int dr)
{
	if (st < dr)
	{
		int mid = st + (dr - st) / 2;
		quicksort(v,st, mid);
		quicksort(v,mid + 1, dr);

		int i = st, j = mid + 1, k = st;
		while (i <= mid && j <= dr)
			if (v[i] <= v[j])
				w[k++] = v[i++];
			else
				w[k++] = v[j++];
		while (i <= mid)
			w[k++] = v[i++];
		while (j <= dr)
			w[k++] = v[j++];

		for (int i = st; i <= dr; ++i)
			v[i] = w[i];
	}
}

int main() {
	f >> n;
	for (int i = 0; i < n; ++i)
		f >> v[i];
	quicksort(v, 0, n - 1);
	for (int i = 0; i < n; ++i)
		g << v[i] << ' ';

	f.close();
	g.close();
}