Cod sursa(job #2428239)

Utilizator qfl1ck32Andrei qfl1ck32 Data 4 iunie 2019 13:10:35
Problema Sortare prin comparare Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.13 kb
#include <iostream>
#include <fstream>
#define DIMMAX 500001
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int v[DIMMAX];
int verifsort(int v[DIMMAX], int a, int n)
{
    while (n > a)
    {
        if (v[n] < v[n-1])
            return 0;
        n--;
    }
    return 1;
}
int pozmin(int v[DIMMAX], int a, int b)
{
    int i, Min = v[a], pozmin = a;
    for (i = a + 1; i <= b; i++)
        if (v[i] < Min)
            {
                Min = v[i];
                pozmin = i;
            }
    return pozmin;
}
void intsch(int v[DIMMAX], int a, int b)
{
    int i,aux;
    for (i = a; i < a+(b-a+1)/2; i++)
    {
        aux = v[i];
        v[i] = v[b-i+a];
        v[b-i+a] = aux;
    }
}
int main()
{
    int n, i = 1, poz;
    fin>>n;
    while (!fin.eof())
    {
        fin>>v[i];
        i++;
    }
    i = 1;
    while (!verifsort(v, i, n))
    {
        poz = pozmin(v, i, n);
        intsch(v, poz, n);
        intsch(v, i, n);
        i++;
    }
    for (i = 1; i <= n; i++)
        fout<<v[i]<<" ";
    fin.close();
    fout.close();
    return 0;
}