Example #1
0
void estadistica(int n_pruebas, int tam_vec, double factor){
    //Instanciacion del banco de pruebas
    Vector<Dni>* bank_pruebas = new Vector<Dni>[n_pruebas];
    srand(time(NULL));
    
    //Instanciar algoritmos
    InsertionSort<Dni> is;
    BubbleSort<Dni> bs;
    ShellSort<Dni> ss(factor);
    QuickSort<Dni> qs;
    MergeSort<Dni> ms;
    
     //Aplicar algoritmos al banco de pruebas
    for(int i = 0; i < n_pruebas; i++){
        bank_pruebas[i] = bank_gen(tam_vec);
        cout << "Vector " << i << " : "; bank_pruebas[i].mostrar();
         
        cout << " ## InsertionSort: " << endl;
        is.ordenar(bank_pruebas[i], bank_pruebas[i].getSize());
        
        cout << "Vector : "; bank_pruebas[i].mostrar();
        cout << " ## BubbleSort: " << endl;
        bs.ordenar(bank_pruebas[i], bank_pruebas[i].getSize());
        
        cout << "Vector: " ; bank_pruebas[i].mostrar();
        cout << " ## ShellSort: " << endl;
        ss.ordenar(bank_pruebas[i], bank_pruebas[i].getSize());

        cout << "Vector: " ; bank_pruebas[i].mostrar();
        cout << " ## QuickSort: " << endl;
        qs.ordenar(bank_pruebas[i], bank_pruebas[i].getSize());
        
        cout << "Vector: " ; bank_pruebas[i].mostrar();
        cout << " ## MergeSort: " << endl;
        ms.ordenar(bank_pruebas[i], bank_pruebas[i].getSize());
        
        cout << "~~~~~~" << endl;
    }
        
    bs.setAvg( (double)bs.getTot() / n_pruebas);
    is.setAvg( (double)is.getTot() / n_pruebas);
    ss.setAvg( (double)ss.getTot() / n_pruebas);
    qs.setAvg( (double)qs.getTot() / n_pruebas);
    ms.setAvg( (double)ms.getTot() / n_pruebas);

    cout << endl;
    cout << "Estadisticas" << endl;
    cout << "Algoritmo     " << "    min " << "    avg " << "    max " << " total" << endl;
    cout << setprecision(5);
    cout << "InsertionSort   " << is.getMin() << "    " << is.getAvg() << "    " << is.getMax() << "     " << is.getTot() << endl;
    cout << "BubbleSort      " << bs.getMin() << "    " << bs.getAvg() << "    " << bs.getMax() << "     " << bs.getTot() << endl;
    cout << "ShellSort       " << ss.getMin() << "    " << ss.getAvg() << "    " << ss.getMax() << "     " << ss.getTot() << endl;
    cout << "QuickSort       " << qs.getMin() << "    " << qs.getAvg() << "    " << qs.getMax() << "     " << qs.getTot() << endl;
    cout << "MergeSort       " << ms.getMin() << "    " << ms.getAvg() << "    " << ms.getMax() << "     " << ms.getTot() << endl;

}