Cod sursa(job #1423823)

Utilizator abel1090Abel Putovits abel1090 Data 22 aprilie 2015 20:09:41
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.97 kb
///SORTING
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
#include <limits>

using namespace std;

const int MAXINT = numeric_limits<int>::max();

void insertionSort(vector<int>& A) {
   int j;
   for(int i=1; i<A.size(); ++i) {
      j = i;
      while(j && A[j-1] > A[j]) {
         swap(A[j-1], A[j]);
         --j;
      }
   }
}

void selectionSort(vector<int>& A) {
   pair<int, int> min(0, 0);
   for(int i=0; i<A.size()-1; ++i) {
      min.first = A[i];
      for(int j=i+1; j<A.size(); ++j)
         if(min.first > A[j]) {
            min.first = A[j];
            min.second = j;
         }
      if(min.first != A[i])
         swap(A[i], A[min.second]);
   }
}

int main() {
   ifstream inStr("algsort.in");
   ofstream outStr("algsort.out");

   int N;
   inStr >> N;

   vector<int> A(N);

   for(int i=0; i<N; ++i)
      inStr >> A[i];

   selectionSort(A);

   for(auto curr : A)
      outStr << curr << ' ';
   outStr << '\n';

   return 0;
}