Facebook
From Soiled Zebra, 1 Month ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 43
  1. void TestBusqueda::comparar(int metodo1, int metodo2)
  2. {
  3.         system("cls");
  4.  
  5.         cout << endl;
  6.         cout << "\t*****COMPARACION DE LOS ALGORITMOS: " << nombreAlgoritmo[metodo1] << " y " << nombreAlgoritmo[metodo2] << "***" << endl;
  7.         cout << endl;
  8.  
  9.         cout << "\t\tTALLA  \t\tTIEMPO(ms)" << nombreAlgoritmo[metodo1] << "\tTIEMPO(ms)" << nombreAlgoritmo[metodo2] << endl;
  10.         ofstream file("comparacion" + nombreAlgoritmo[metodo1] + nombreAlgoritmo[metodo2] + ".dat");
  11.  
  12.         if (file.fail())
  13.                 cout << "Error al abrir el archivo";
  14.  
  15.         double t1;
  16.         double t2;
  17.         int pos1;
  18.  
  19.         for (int talla = tallaIni; talla <= tallaFin; talla += incTalla)
  20.         {
  21.                 ConjuntoInt* v = new ConjuntoInt(talla);
  22.                 t1 = 0;
  23.                 t2 = 0;
  24.                 for (int i = 0; i < NUMREPETICIONES; i++)
  25.                 {
  26.                         v->GeneraVector(talla);
  27.                         t1 += buscaEnArrayInt(v->generaKey(), v->getDatos(), talla, metodo1, pos1);
  28.  
  29.                         v->GeneraVector(talla);
  30.                         t2 += buscaEnArrayInt(v->generaKey(), v->getDatos(), talla, metodo2, pos1);
  31.                         v->vaciar();
  32.                 }
  33.                 t1 /= NUMREPETICIONES;
  34.                 t2 /= NUMREPETICIONES;
  35.  
  36.                 delete v;
  37.  
  38.                 cout.precision(4);
  39.                 cout << "\t\t" << talla << "\t\t    " << setw(10) << fixed << setprecision(4) << t1 << "\t     " << setw(10) << fixed << setprecision(4) << t2 << "\n";
  40.  
  41.                 if (talla != tallaIni)
  42.                         file << talla << "\t" << t1 << "\t" << t2 << "\n";
  43.         }
  44.  
  45.         file.close();
  46.  
  47.         char opc;
  48.  
  49.         vector<string> ComparacionAlg;
  50.  
  51.         ComparacionAlg.push_back(nombreAlgoritmo[metodo1]);
  52.         ComparacionAlg.push_back(nombreAlgoritmo[metodo2]);
  53.  
  54.  
  55.         cout << "\nGenerar grafica (s, n): ";
  56.         cin >> opc;
  57.         if (opc == 's' || opc == 'S') {
  58.                 Graficas g;
  59.                 g.generarGraficaT(ComparacionAlg);
  60.                 cout << "La grafica fue generada.\n\n";
  61.                 system("start grafica.gpl");
  62.         }
  63.         else cout << "No se generara la grafica.\n\n";
  64.  
  65.         system("pause");
  66. }
  67.  
  68. void TestBusqueda::comparaTodos()
  69. {
  70.         system("cls");
  71.         cout << "**COMPARATIVA DE TODOS LOS ALGORITMOS***";
  72.         cout << endl << endl;
  73.         cout << "\ttalla" << "\t\t  Secuencial" << "\t    Binaria" << "\t    Interpolacion";
  74.         cout << endl;
  75.  
  76.         ofstream file("AlgoritmosBusqueda.dat");
  77.         if (file.fail())
  78.                 cout << "Error al abrir al crear el archivo.\nNo se guardaran los datos.\n";
  79.  
  80.         double t1 = 0;
  81.         double t2 = 0;
  82.         double t3 = 0;
  83.         int pos1, pos2, pos3;
  84.  
  85.         for (int talla = tallaIni; talla <= tallaFin; talla += incTalla) {
  86.                 ConjuntoInt* v = new ConjuntoInt(talla);
  87.  
  88.                 for (int i = 0; i < nombreAlgoritmo.size(); i++)
  89.                 {
  90.                         // tiempo[i] = 0;
  91.                         for (int j = 0; i < NUMREPETICIONES; i++)
  92.                         {
  93.                                 v->GeneraVector(talla);
  94.                                 t1 += buscaEnArrayInt(v->generaKey(), v->getDatos(), talla, 0, pos1);
  95.                                 v->vaciar();
  96.  
  97.                                 v->GeneraVector(talla);
  98.                                 t2 += buscaEnArrayInt(v->generaKey(), v->getDatos(), talla, 1, pos2);
  99.                                 v->vaciar();
  100.  
  101.                                 v->GeneraVector(talla);
  102.                                 t3 += buscaEnArrayInt(v->generaKey(), v->getDatos(), talla, 2, pos3);
  103.                                 v->vaciar();
  104.                         }
  105.  
  106.                         t1 /= NUMREPETICIONES;
  107.                         t2 /= NUMREPETICIONES;
  108.                         t3 /= NUMREPETICIONES;
  109.                 }
  110.  
  111.                 delete v;
  112.  
  113.                 cout.precision(4);
  114.  
  115.                 cout << "\t" << talla << "\t";
  116.                 cout << "\t " << setw(10) << fixed << setprecision(4) << t1
  117.                         << "\t " << setw(10) << fixed << setprecision(4) << t2
  118.                         << "\t " << setw(10) << fixed << setprecision(4) << t3 << "\n";
  119.                 file << talla;
  120.                 file << "\t" << t1 << "\t" << t2 << "\t" << t3;
  121.                 file << "\n";
  122.         }
  123.         file.close();
  124.  
  125.         //Generar grafica
  126.         char opt;
  127.         cout << "\nGenerar grafica (s, n): ";
  128.         cin >> opt;
  129.         if (opt == 's' || opt == 'S') {
  130.                 Graficas g;
  131.                 g.generarGraficaT(nombreAlgoritmo);
  132.                 cout << "La grafica fue generada.\n\n";
  133.                 system("start grafica.gpl");
  134.         }
  135.         else cout << "No se generara la grafica.\n\n";
  136.  
  137.         system("pause");
  138. }