Cod sursa(job #1224224)

Utilizator o_micBianca Costin o_mic Data 30 august 2014 10:27:21
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 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 left, int right)
{
	int i, j, pos, pivot;
	if(left >= right - 1)
		return;
    pos = rand() % (right - left) + left;
    pivot = v[pos];
	for(i = left, j = right - 1 ; i < j ; )
    {
        while(v[i] < pivot)
            i++;
        while(v[j] > pivot)
            j--;
        if(i < j)
            swap(v[i], v[j]);
    }
	quick_sort(left, j);
	quick_sort(j+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(0, n);
	for(i = 0 ; i < n ; i++)
        g << v[i] << " ";
	return 0;
}