如果一個算法執行一個語句,它是n/2次,那么為什么O等于O(n)。因為視頻解釋說這是因為多項式的次數。請解釋。for(int i =0;i<n;i=i+2){sout(n) ---- This statemet can be print n/2 times}f(n) = n/2 then O(n)
2 回答

ABOUTYOU
TA貢獻1812條經驗 獲得超5個贊
簡單來說,雖然語句會打印時間,但它仍然與 .n/2
n
對于 n=10,它將打印 5 次。
對于 n=50,它將打印 25 次。
對于 n=100,它將打印 50 次。
請注意線性關系。該因子僅乘以 。它是一種線性關系,表示線性關系,并且不關心常量(在本例中)。甚至會是.1/2
n
O(n)
1/2
f(n) = n/3
O(n)

小唯快跑啊
TA貢獻1863條經驗 獲得超2個贊
是的,正如Aoerz已經說過的那樣,要理解你的問題,你應該理解O符號的含義。
以數學方式:
O(f(n)) = {g(n) : ?c>0 ∧ n0 ≥ 0 | g(n) ≤ c*f(n) ? n ≥ n0}
所以(在某個和一個常量之后g(n) ∈ O(f(n)) if g(n) ≤ c*f(n)
n0
c
)
用簡單的話來說,可以把它想象成一個非常大的數字。所有其他因素有多重要?那么,唯一真正重要的主要因素是什么呢?n
示例:(嘗試一下,您會發現這已經足夠了)f(n) = n^3 + 300*n +5 --> f(n) ∈ O(n^3)
n=100
添加回答
舉報
0/150
提交
取消