Cod sursa(job #442391)

Utilizator ChallengeMurtaza Alexandru Challenge Data 14 aprilie 2010 12:22:05
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>
#include <deque>
#include <vector>

using namespace std;

const char InFile[]="algsort.in";
const char OutFile[]="algsort.out";

ifstream fin(InFile);
ofstream fout(OutFile);

vector<int> V;
int n,x;

bool keepsort()
{
	bool sort=false;
	deque<int> D;
	D.push_back(V[0]);
	for(register int i=1;i<n;++i)
	{
		if(V[i]<D[D.size()-1])
		{
			D.push_front(V[i]);
			sort=true;
		}
		else
		{
			D.push_back(V[i]);
		}
	}
	for(register int i=0;i<n;++i)
	{
		V[i]=D[i];
	}
	return sort;
}

void sort()
{
	while(keepsort());
}

int main()
{
	fin>>n;
	for(register int i=0;i<n;++i)
	{
		fin>>x;
		V.push_back(x);
	}
	fin.close();
	
	sort();
	
	for(register int i=0;i<n;++i)
		fout<<V[i]<<" ";
	fout.close();
	return 0;
}