PDA

Visualizza la versione completa : [C++] Tempo di esecuzione e stampa su carta


MisterMPG
22-05-2018, 08:23
Scusate dovrei usare bubble sort e selection sort con degli array e stampare su carta la codifica degli algoritmi il tempo di esecuzione. MI potete dire come si fa a calcolare il tempo di esecuzione del processo e come si stampa il tutto (codifica e tempo) su carta (anzichè a video)?
Qui vi metto un programma che ho fatto, ripeto non ho alcuna cognizione ne' spiegazione di come calcolare il tempo di esecuzione del solo bubble sort e quindi cosa e dove mettere nell'esempio che vi ho scritto. Se avvio il programma cosi' com'è c'è l'execution time ma varia in base a quanto ci metto ad inserire manualmente i numeri dell'array, non mi dice il tempo di esecuzione del bubble sort.
E per la stampa su carta come si fa?
Grazie a tutti.



#include <iostream>
#include <ctime>
using namespace std;

int main()
{

const int n = 3;
int vet[n];
int tmp;
for(int i=0;i<n;i++)
{
cin>>vet[i];
}
cout<<endl;
bool flag = true;
int stop = n - 1;

while (flag)
{
flag = false;
for (int i = 0; i <= stop; i++)
if (vet[i] > vet[i + 1])
{
//swap(vet[i], vet[i + 1]); // std::swap()
tmp=vet[i];
vet[i]=vet[i+1];
vet[i+1]=tmp;
flag = true;
}

stop = stop - 1;
}
for(int i=0;i<n; i++)
{
cout<<vet[i]<<endl;

}
}

oregon
22-05-2018, 11:17
Per il tempo valgono le risposte che hai avuto in

https://www.tomshw.it/forum/threads/tempo-di-esecuzione-e-stampa-su-carta-in-c.711840/

(inutile riproportele).

Per la stampa su carta, anche a me sembra strano che lo debba fare il programma.

Semmai il programma deve produrre un file (di testo) stampabile su qualsiasi stampante disponibile nel sistema in cui sarà spostato.

MisterMPG
22-05-2018, 12:11
Per il tempo valgono le risposte che hai avuto in

https://www.tomshw.it/forum/threads/tempo-di-esecuzione-e-stampa-su-carta-in-c.711840/

(inutile riproportele).

Per la stampa su carta, anche a me sembra strano che lo debba fare il programma.

Semmai il programma deve produrre un file (di testo) stampabile su qualsiasi stampante disponibile nel sistema in cui sarà spostato.

Ma come si produce il file di testo stampabile in windows? E comunque non riesco a far uscire il tempo del solo processo del bubble sort....
Ho provato cosi' ma niente (mi viene sempre l'execution time totale ma se io metto lentamente i valori dell'array l'execution time aumenta quindi non mi da' il tempo solo del processo di bubble sort):



int main()
{
time_t inizio = time(NULL);

const int n = 3;
int vet[n];
int tmp;
for(int i=0;i<n;i++)
{
cin>>vet[i];
}
cout<<endl;
bool flag = true;
int stop = n - 1;

while (flag)
{
flag = false;
for (int i = 0; i <= stop; i++)
if (vet[i] > vet[i + 1])
{
//swap(vet[i], vet[i + 1]); // std::swap()
tmp=vet[i];
vet[i]=vet[i+1];
vet[i+1]=tmp;
flag = true;
}

stop = stop - 1;
}
for(int i=0;i<n; i++)
{
cout<<vet[i]<<endl;
double tempoDiSorting = difftime(time(NULL), inizio);
}
}

oregon
22-05-2018, 15:42
Scusa, mi pare ovvio che questa

time_t inizio = time(NULL);

la devi spostare DOPO l'input da tastiera !

Per generare un file, non sai come si scrive su file di testo? Mi sembra impossibile ...

MisterMPG
22-05-2018, 16:23
Scusa, mi pare ovvio che questa

time_t inizio = time(NULL);

la devi spostare DOPO l'input da tastiera !

Per generare un file, non sai come si scrive su file di testo? Mi sembra impossibile ...

Non so generare il file di testo di quello che mi risulta stampato a video con il programma codeblocks...

MisterMPG
22-05-2018, 16:24
Scusa, mi pare ovvio che questa time_t inizio = time(NULL); la devi spostare DOPO l'input da tastiera ! Per generare un file, non sai come si scrive su file di testo? Mi sembra impossibile ... Non so generare il file di testo di quello che mi risulta stampato a video con il programma codeblocks...

MisterMPG
22-05-2018, 16:24
.......

Loading