Я написал функцию append()
в Java, и мне нужно проанализировать ее сложность выполнения по O (N) и Θ (N).Анализ сложности выполнения функции
Это оригинальный вопрос:
Пусть
append()
«ы сложности выполнения являетсяt = O(N)
, это означает, чтоt
также могут быть представленыt = C*N
. (какC
является постоянной)Поэтому
(t/N) = C
.Если, например,
t = O(N^2)
, то(t/N^2) = C
и так далее.используйте этот метод, чтобы найти
append()
время работы.
Так что я побежал append()
N раз для 3-х различных N
с: 1,000
, 5,000
, 10,000
.
long start = System.currentTimeMillis();
for(i = 0; i < N; ++i) {
append();
}
long end = long start = System.currentTimeMillis();
System.out.println(end - start);
и я записал end-start
, который является время выполнения в миллисекундах.
Теперь, как я могу использовать эту информацию, чтобы получить совпадение времени append()
?
Заранее благодарен!
У вас уже есть временная сложность, это O (N) вещь. Вы просите константу, и это - мутное использование асимптотической вычислительной сложности ** в лучшем случае ** - почему вы это делаете? Если вы хотите сравнить реальную производительность, вы можете пропустить эту часть и сравнить измеренное время напрямую. Это называется бенчмаркингом. – delnan