Cod sursa(job #1459205)

Utilizator tamionvTamio Vesa Nakajima tamionv Data 9 iulie 2015 12:52:37
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream>
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

template <typename It>
void qsort(It s, It d){
	cout << distance(s, d) << '\n';
	if(distance(s, d) == 2){
		if(*s > *(s+1)){
			iter_swap(s, s+1); } }
	else if(distance(s, d) > 2){
		const int val = *s;
		auto mij = partition(s, d, [val](const int v){
			return v < val; });
		if(distance(s, mij) > 1){
			qsort(s, mij); }
		if(distance(mij+1, d) > 1){
			qsort(mij+1, d); } } }

int main(){
	ifstream f("algsort.in");
	ofstream g("algsort.out");
	int n;
	f >> n;
	vector<int> v(n);
	for(auto& x : v){
		f >> x; }
	qsort(begin(v), end(v));
	for(const auto x : v){
		g << x << ' '; }
	return 0; }