Provando e reprovando o BigO
Ao provar e refutar as perguntas do Big O que dizem explicitamente usar a definição para provar e refutar, minha pergunta é: o que estou fazendo é correto?
Por exemplo, você tem uma pergunta que é g (n) = O (f (n)) ... Para provar isso, eu estava fazendo o seguinte
g(n) <= C(F(n))
g(n)/F(n) <= C .. then give n=1 and solve for C , which proves it.
A contradição que eu corro ao fazer isso é quando eu abordo uma questão de refutar essas coisas
por exemplo
g (n) = O (F (n)) para refutá-lo, eu faria
g (n)> = C (F (n)) e resolva para C novamente. No entanto, isso me leva a acreditar que o grande O pode ser provado e refutado ao mesmo tempo? o que é 100% errado.
Usando números do mundo real (Proving)
n^2 + 3 = O(n^2)
(n^2 + 3)/n^2 <= C assume n = 1 then C >= 3
Disproving
n^2 + 3 = O(n^2)
(n^2 + 3)/n^2 >= C assume n = 1 then C <= 3
n^2 + 3 = O(n^2)
ambos dizem que @ n = 1 ec = 3 o algoritmo é O (n ^ 2) e NÃO é O (n ^ 2).
Alguém pode me ajudar a esclarecer minha confusão e me ajudar a aprender uma boa maneira algorítmica de resolver grandes questões de O?