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?

questionAnswers(1)

yourAnswerToTheQuestion