Cod sursa(job #1369289)

Utilizator batistaUPB-Oprea-Cosmin-Dumitru batista Data 2 martie 2015 23:24:53
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include<fstream>
#include<algorithm>
int lomuto_partition(int v[], int lower, int upper)
{
    int x = v[upper];
    int i = lower - 1;
    for (int j = lower; j<=upper-1; ++j)
        if (v[j] <= x)
        {
            ++i;
            std::swap(v[i], v[j]);
        }
    std::swap(v[i+1], v[upper]);
    return i+1;
}
void qsort(int v[], int lower, int upper)
{
    if(lower < upper)
    {
        int mid = lomuto_partition(v, lower, upper);
        qsort(v, lower, mid-1);
        qsort(v, mid+1, upper);
    }
}
int main()
{
	unsigned int i, n, v[500000];
    std::ifstream f("algsort.in");
	std::ofstream g("algsort.out");
    f>>n;
    for(i=0; i<n; i++)
        f >> v[i];
    qsort(v, 0, n-1);
    for(i=0; i<n; i++)
         g<< v[i] << " ";
    f.close();
	g.close();
	return 0;
}