Cod sursa(job #2273589)

Utilizator marian013Giugioiu Marian Constantin marian013 Data 31 octombrie 2018 19:34:45
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include<fstream>
#include  <cstdlib>
#include <ctime>
using namespace std;
int v[500002];
int part(int st, int dr){
    int i = st - 1, j = dr + 1, p = v[(st+dr)/2];
    while(1)
    {
        do
		{
			++i;
		} while(v[i] < p);
		do
		{
			--j;
		} while(p < v[j]);
		if(i < j)
			swap(v[i], v[j]);
		else
			return j;
    }
}
void quicksort(int st, int dr)
{
	if(dr == st)
		return;
	int q = part(st, dr);
	quicksort(st, q);
    quicksort(q+1, dr);
}
int main()
{
    srand(time(NULL));
    int n, i;
    ifstream f("algsort.in");
    ofstream g("algsort.out");
    f>>n;
    for(i = 1; i <=n ; i++)
        f>>v[i];
    quicksort(1, n);
    for(i = 1; i <= n; i++)
        g<<v[i]<<" ";
}