Temps d'exécution [C] - Programmation
Marsh Posté le 10-01-2002 à 17:45:56
#inlcude <windows.h>
int debut,calcule;
debut = GetTicksCount();
/* ... */
calcule = GetTicksCount() - debut;
printf("Le programe s'est execute en %d millisecondes\r\n",calcule);
Marsh Posté le 10-01-2002 à 18:01:34
marche pô, il me met toujours 0 millisecondes
Marsh Posté le 10-01-2002 à 18:15:51
ne trie pas 20(!) entiers
tu n'es plus sur amstrad CPC.
pour info 1Ghz = 1 milliards de cycles d'horloge par seconde
de plus t'auras surement des difficultes
avec la precision de time ou gettickcount
sous certaines plateformes
gettickcount est limite a une granularite
de 15 ms, il vaut mieux utiliser
les multimedia timers ou performance timers
pour des mesures tres fines.
A+
LEGREG
Marsh Posté le 10-01-2002 à 18:37:03
hum... effectivement ça marche mieux avec 5000 entiers
merci bien !
[edtdd]--Message édité par [ ZeD ]--[/edtdd]
Marsh Posté le 10-01-2002 à 17:42:58
Hello !
Voilà, g commencé un programme qui teste différentes méthodes de tri :
---------
void TriInsert(int* tab)
{
int i, j, tmp;
for (i=0; i<N; i++)
{
tmp = tab[ i];
j = i;
while ((j>0) && (tab[j-1]>tmp))
{
tab[j] = tab[j-1];
j--;
}
tab[j] = tmp;
}
}
int main()
{
int tab[N];
struct _timeb start, end;
int sec, ms;
printf("Tri par insertion :\n\n" );
init(tab); affiche(tab);
_ftime(&start);
TriInsert(tab);
_ftime(&end);
affiche(tab);
sec = end.time - start.time;
ms = end.millitm - start.millitm;
printf ("Temps ecoule : %d.%d secondes\n--\n", sec, ms);
return 0;
}
-------
Or, lorsque je fais un test sur un tableau de 20 entiers, il m'affiche à chaque fois : Temps ecoule : 0.0 secondes
Donc voilà ma question : l'exécution est-elle si rapide que ça ?
Et si oui, n'y a-t-il pas un moyen d'avoir une plus grande précision ?
Merci d'avance !
---------------
The N·Zone New Formation Official Website