Я пытаюсь выяснить, как дать худшую временную сложность. Я не уверен в моем анализе. Я читал вложенные for
петли большие O n^2
; это правильно для петли for
с петлей while
внутри?Как найти временную сложность T (n) и показать, что она плотно ограничена (Big Theta)?
// A is an array of real numbers.
// The size of A is n. i,j are of type int, key is
// of type real.
Procedure IS(A)
for j = 2 to length[A]
{
key = A[ j ]
i = j-1
while i>0 and A[i]>key
{
A[i+1] = A[i]
i=i-1
}
A[i+1] = key
}
до сих пор у меня есть:
j=2 (+1 op)
i>0 (+n ops)
A[i] > key (+n ops)
so T(n) = 2n+1?
Но я не уверен, если я должен идти внутрь из while
и for
петель проанализировать худший случай временной сложности ...
Теперь я должен доказать, что он тесно связан, то есть Большая тета.
Я читал, что вложенные for
петли имеют Big O of n^2
. Это также верно для Большой Теты? Если не так, как я могу найти Большую Тету ?!
** С1 = С 1 к югу, С2 = С 2 югу, и нет = п нет все элементы положительных действительных чисел
Чтобы найти T(n)
я смотрел на значениях j
и смотрел на сколько раз цикл пока выполняется:
values of J: 2, 3, 4, ... n
Loop executes: 1, 2, 3, ... n
Анализ:
Возьмите суммирование расстрелах в то время как петли и признать, что это (n(n+1))/2
я присвоит это как мой T(n)
и доказать, что она тесно ограничена n^2
. Это n(n+1)/2= θ(n^2)
Царапина работы:
Find C1, C2, no є R+ such that 0 ≤ C1(n^2) ≤ (n(n+1))/2 ≤ C2(n^2)for all n ≥ no
To make 0 ≤ C1(n) true, C1, no, can be any positive reals
To make C1(n^2) ≤ (n(n+1))/2, C1 must be ≤ 1
To make (n(n+1))/2 ≤ C2(n^2), C2 must be ≥ 1
ПФ:
Find C1, C2, no є R+ such that 0 ≤ C1(n^2) ≤ (n(n+1))/2 ≤ C2(n^2) for all n ≥ no
Let C1= 1/2, C2= 1 and no = 1.
показывают, что 0 ≤ С1 (п^2) истинно С1 (п^2) = n^2/2
n^2/2≥ no^2/2
⇒no^2/2≥ 0
1/2> 0
Следовательно, C1 (n^2) ≥ 0 доказано!показывают, что С1 (п^2) ≤ (п (п + 1))/2 истинно С1 (п^2) ≤ (п (п + 1))/2
п^2/2 ≤ (п (п + 1))/2 п^2 ≤ п (п + 1)
п^2 ≤ п^2 + п
0 ≤ пЭто мы знаем, верно, так как п ≥ no = 1
Следовательно, C1 (n^2) ≤ (n (n + 1))/2 доказано!Покажите, что (п (п + 1))/2 ≤ С2 (п^2) истинно (п (п + 1))/2 ≤ С2 (п^2)
(п + 1)/2 ≤ С2 (п)
п + 1 ≤ 2 С2 (п)
п + 1 ≤ 2 (п)
1 ≤ 2n-н
1 ≤ N (2-1) = п
1≤ п
Кроме того, мы знаем, что это верно, так как N ≥ 1 нет =Следовательно, на 1, 2 и 3, Q (N^2) = (п (п + 1))/2 верна с
0 ≤ C1 (п^2) ≤ (N (N + 1))/2 ≤ C2 (п^2) для всех п^не
не скажите, что вы, ребята, вещь ... Я «Я пытаюсь понять этот материал и хотел бы войти!
Это совсем название, которое вы получили там. Есть ли способ, каким вы могли бы включить этот контент в собственно вопрос? – bedwyr
Попробуйте этот учебник: http://quizgen.org/tut/q12.BigOh.p4.pdf. – BobbyShaftoe
@ Daniel L, Большое спасибо за ваши изменения. =] – strager