Cod sursa(job #1502687)

Utilizator TeodorCotetCotet Teodor TeodorCotet Data 14 octombrie 2015 22:04:48
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <fstream>
#include <queue>
#include <cstring>
#include <ctime>
#include <stdlib.h>

using namespace std;

ifstream fin("algsort.in");
ofstream fout("algsort.out");

const int NMAX = 500001;

int N;

int v[NMAX]; 

void read() {

	fin >> N;
	
	for(int i = 1 ; i <= N; ++i)
		fin >> v[i];
}

void quicksort(int st, int dr) {

	if(dr <= st) return;

	int pivot = dr;

	int index = st;

	for(int i = st ; i < dr; ++i)
		if(v[pivot] > v[i]) 
			swap(v[index++], v[i]);
	
	swap(v[index], v[dr]);

	if(index - 1 > st)
		quicksort(st, index - 1);

	if(index + 1 < dr)
		quicksort(index + 1, dr);
}	


int main() {


	read();

	//srand(time(NULL));
	quicksort(1, N);

	for(int i = 1; i <= N; i++)
		fout << v[i] << " ";

	return 0;
}