Mesures – Test 0.1

#include <algorithm>
#include <vector>
#include <deque>
#include <iostream>
#include <numeric>
#include <chrono>
#include <random>
#include <memory>
using namespace std;
using namespace std::chrono;
template <class Itt>
   system_clock::duration trier_elements(Itt debut, Itt fin)
   {
      auto avant = system_clock::now();
      sort(debut, fin);
      return system_clock::now() - avant;
   }
int main()
{
   const int NELEMS = 5000000;
   unique_ptr<int[]> tab(new int[NELEMS]);
   iota(&tab[0], &tab[NELEMS], 1);
   random_device rd;
   shuffle(&tab[0], &tab[NELEMS], mt19937(rd()));
   vector<int> v(&tab[0], &tab[NELEMS]);
   deque<int> d(&tab[0], &tab[NELEMS]);
   auto t_t = trier_elements(&tab[0], &tab[NELEMS]);
   auto t_v = trier_elements(begin(v), end(v));
   auto t_d = trier_elements(begin(d), end(d));
   cout << "Resultats pour le tri de " << NELEMS << " elements (ms):" << endl
        << "\ttableau: " << duration_cast<milliseconds>(t_t).count() << " ms." << endl
        << "\tvector: " << duration_cast<milliseconds>(t_v).count() << " ms." << endl
        << "\tdeque: " << duration_cast<milliseconds>(t_d).count() << " ms." << endl;
}

Sur mon petit ordinateur portatif, compilé avec Visual Studio 2013, configuration Release, et en prenant bien entendu soin d'ajouter _SECURE_SCL=0 aux options du préprocesseur pour désactiver les (franchement inutiles et nuisibles) Checked Iterators, j'obtiens :

Resultats pour le tri de 5000000 elements (ms):
        tableau: 511 ms.
        vector: 512 ms.
        deque: 979 ms.
Appuyez sur une touche pour continuer...

Valid XHTML 1.0 Transitional

CSS Valide !