Je dois chronométrer la durée d'un tri à bulles et imprimer le temps qu'il a fallu. Dans mon programme, l'heure imprimée est toujours 0,00 secondes. Quelqu'un peut-il me dire ce que je fais mal?Chronométrage d'un tri à bulles
int main()
{
srand((unsigned)time(NULL));
int arr[5000], arr2[5000];
int i;
time_t start, end;
double timeDiff;
for(i=0; i < 5000; i++)
{
arr[i] = rand() % 100 + 1;
arr2[i] = arr[i];
}
cout << "Here is the initial array:" << endl;
printArray(arr, 5000);
time(&start);
bubbleSort(arr, 5000);
time(&end);
timeDiff = difftime(end, start);
cout << "\nHere is the array after a bubble sort:" << endl;
printArray(arr, 5000);
cout << fixed << setprecision(2) << "\nIt took " << timeDiff << " seconds to bubble sort the array." << endl;
system("pause");
return 0;
}
Il semble que la granularité de time_t soit trop grande pour capturer le temps pris par votre routine de tri (ie 'bubble Sort' s'exécute en moins d'une seconde). Vous devrez exécuter la routine plusieurs fois pour qu'elle prenne suffisamment de temps pour s'enregistrer. –
Notez que le tri à bulles n'a pas sa place dans l'informatique autre que comme une illustration de la façon de ne pas faire les choses. –
c'était une affectation pour une classe. nous devions créer un tableau de 5000 et le remplir avec des nombres 1-100, puis lancer deux méthodes de tri différentes. – Joshua