Cod sursa(job #1224130)

Utilizator o_micBianca Costin o_mic Data 29 august 2014 20:47:27
Problema Sortare prin comparare Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <ctime>
#include <algorithm>
#define MAX_LENGTH 500005

using namespace std;

int v[MAX_LENGTH];

void quick_sort(int v[MAX_LENGTH], int left, int right)
{
	int i, j, pos;
	if(left >= right - 1)
		return;
    pos = rand() % (right - left) + left;
    swap(v[pos], v[left]);
	for(i = left, j = left + 1 ; j < right ; j++)
		if(v[j] < v[left])
			{
				swap(v[i+1], v[j]);
				i++;
			}
	swap(v[left], v[i]);
	quick_sort(v, left, i);
	quick_sort(v, i+1, right);
}

int main()
{
	int n, i;
	fstream f("algsort.in", ios::in);
	fstream g("algsort.out", ios::out);
	f >> n;
	for(i = 0 ; i < n ; i++)
		f >> v[i];
    srand(time(NULL));
	quick_sort(v, 0, n);
	for(i = 0 ; i < n ; i++)
        g << v[i] << " ";
	return 0;
}