В настоящее время я работаю над заданием, которое просит нас реализовать несколько разных типов и ввести переменные счетчика для измерения времени выполнения.Измерение времени выполнения с переменной счетчика
Мой вопрос в том, что я смущен тем, включать или не включать определенные «операции» в качестве чего-то, что увеличило бы мой счетчик. Например, мой учебник говорит, что это:
....
Таким образом, от того, что я понимаю, я должен быть подсчет «сравнения», но я не понимаю, если это относится к тому, если заявления, в то время как петли и т. д.
Например, вот мой способ сортировки.
float insertionSort(int theArray[], int n) {
float count = 0;
for (int unsorted = 1; unsorted < n; unsorted++) {
int nextItem = theArray[unsorted];
int loc = unsorted;
while ((loc > 0) && (theArray[loc - 1] > nextItem)) {
theArray[loc] = theArray[loc - 1];
theArray[loc] = nextItem;
loc--;
count += 4;
}
}
return count;
}
Как вы можете видеть, я увеличиваю счет на 4 для каждой итерации цикла while. Я думаю, это действительно подчеркивает мой вопрос.
Мои рассуждения в том, что мы делаем два сравнения в условном операторе цикла в то время как:
(LOC> 0 & & theArray [Loc - 1]> nextItem)
После этого, мы делаем два шага в массиве. По моему мнению, это означает, что мы выполнили 4 «операции», и мы будем увеличивать счетчик на 4 для измерения времени выполнения в конце выполнения.
Это правильно? Большое спасибо за любую помощь.
Да, я не уверен, как я не понимал, что они просто действуют как константы, так как они присутствуют на каждой итерации. Большое спасибо, это было хорошее понимание. – user16666322