Cod sursa(job #1044316)

Utilizator serbanSlincu Serban serban Data 29 noiembrie 2013 16:50:50
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 1.02 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

int n,x[500001];

/*
int cmp(const void*a,const void*b)
{
    return *(int *)a-*(int *)b;
}*/
int main()
{
    int i,j,aux;
    freopen("algsort.in","r",stdin);
    freopen("algsort.out","w",stdout);
    cin>>n;
    for (i=1;i<=n;i++)
        cin>>x[i];
    //qsort(x+1,n,sizeof(x[1]),cmp);

    bool ok=false;
    int in=1,sf=n;
    do
    {
        ok=true;
        for(i=1;i<n;i++)
        {
            if(x[i]>x[i+1])
            {
                in=i;
                i=n;
            }
        }
        i=in;
        for(j=in;j<=n;j++)
        {
            if(x[i]>x[j] && i<j)
            {
                aux=x[j];
                x[j]=x[i];
                x[i]=aux;
                i=j;
            }
        }
        for(i=1;i<n;i++)
            if(x[i]>x[i+1])
                ok=false;
    }
    while (!ok);
    for (i=1;i<=n;i++)
        cout <<x[i]<<" ";
    cout<<"\n";
    return 0;
}