Cod sursa(job #1308187)

Utilizator moise_alexandruMoise Alexandru moise_alexandru Data 3 ianuarie 2015 18:53:44
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
long long v[500001];
int n;
void interschimba(int a,int b)
{
    int c=a;
    a=b;
    a=c;
}
void sortare(int st, int dr)
{
    if(st<=dr)
    {
        int mij=(st+dr)/2;
        int i = st;
        int j = dr;
        while(i <= j)
        {
            while(v[j] > v[mij] && j >= st)
                j--;
            while(v[i] < v[mij] && i <= dr)
                i++;
            if(i <= j)
            {
                interschimba(v[i], v[j]);
                i++;
                j--;
            }
        }
        if(j>st)
            sortare(st, j);
        if(dr>i)
            sortare(i, dr);
    }
}
int main()
{
    in>>n;
    for(int i=1; i<=n; i++)
        in>>v[i];
    sortare(1,n);
    for(int i=1; i<=n; i++)
        out<<v[i]<<" ";
    return 0;
}