Cod sursa(job #1745074)

Utilizator thinkphpAdrian Statescu thinkphp Data 21 august 2016 08:47:24
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 1.01 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#define FIN "algsort.in"
#define FOUT "algsort.out"

using namespace std;

template <class AccessIterator>
void selectionSort(AccessIterator first, AccessIterator last) {

     AccessIterator begin = first;

     while( begin < last ) {

            AccessIterator it, min = begin;

            for(it = begin; it < last; ++it) {

                if(*it < *min) {

                    min = it;
                } 
            }

            swap( *min, *begin );
 
            begin++;
     }

}

typedef vector<int>::iterator I;

typedef void (*fnPtr)(I, I);

int main() {

    int n, 

        elem;

    ifstream fin( FIN );
    ofstream fout( FOUT );

    fnPtr fn = selectionSort<I>;

    fin>>n;

    vector<int> vec; 

    for(int i = 0; i < n; ++i) fin>>elem, vec.push_back( elem );

    fn( vec.begin(), vec.end() );

    for(int i = 0; i < n; ++i) fout<<vec[ i ]<<" ";

    return(0);
}