Cod sursa(job #1696766)

Utilizator thinkphpAdrian Statescu thinkphp Data 29 aprilie 2016 19:07:49
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.3 kb
/** 
 * FileName      : selectionbymin.cpp 
 * Method Sorting: Selection By Min
 * Author        : Adrian Statescu <http://adrianstatescu.com>
 */

#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#define FIN "algsort.in"
#define FOUT "algsort.out"

using namespace std;

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

               AccessIterator begin = first, 

                              min; 

               while( begin < last ) {

                      min = begin;

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

                          if( *it < *min ) {

                               min = it;
                          } 
                      }

                      swap(*begin, *min);

                      begin++; 
                }
}


typedef vector<int>::iterator I;

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

int main() {

    int n, 

        elem;

    ifstream fin( FIN );

    ofstream fout( FOUT );

    fnPtr sort = selection<I>;

    fin>>n;

    vector<int> vec;

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

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

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

    return(0);
}