This is my first post and any help would be appreciated. I'm writing a program that reads a file of integers of unknown length, then allows the user to choose 1 of 5 kinds of sorts. At the end. the time it took to sort the list will be displayed. The problem has been finding something to time it in ms. What I have below is the closest I've gotten but at times still shows 0 seconds, other times .06, or .11 (all my testing so far has been with a selection sort and bubble sort of 200 integers).
I hope I got the code tags right. If there's any other methods of timing anyone knows that are more consistent and accurate I would appreciate it. Thanks!Code:void SelectionSort( vector <int>& listOfData,
double& duration)
{
int temp;
int counter;
int index;
int minIndex;
clock_t start;
clock_t finish;
start = clock(); // grabs beginning count
for (counter = 0; counter < listOfData.size(); counter++)
{
minIndex = counter;
for (index = counter + 1; index < listOfData.size(); index++)
{
if (listOfData[index] < listOfData[minIndex])
minIndex = index;
}
temp = listOfData[counter];
listOfData[counter] = listOfData[minIndex];
listOfData[minIndex] = temp;
}
finish = clock(); // grabs ending count
duration = double (finish - start) / CLOCKS_PER_SEC;
}
Also on a somewhat unrelated topic. With vectors, is there an upper range limit of elements that a vector can hold? Is it necessary to do checks for out of bounds? And if so, how might I do that without knowing the number of elements I'll be adding? I'll appreciate any help. Thanks!
