5
我是一個完整的新手在大澳,我有點被這個難住。 我:大O N^2(日誌N)
for (int i = 1; i < n*n; i *= 2)
我說得對還是你與n*n
加倍投入,並與i *= 2
減半它可以將其簡化爲N?
我是一個完整的新手在大澳,我有點被這個難住。 我:大O N^2(日誌N)
for (int i = 1; i < n*n; i *= 2)
我說得對還是你與n*n
加倍投入,並與i *= 2
減半它可以將其簡化爲N?
在這種情況下,你有
O(log2(n^2))
這是
O(2 * log2(n))
或只是
O(ln N)
注意如果n * n > (1 << 30)
你將有一個無限循環。
謝謝@Peter。所以我錯了,謝謝你的幫助。所以這隻會等於O(2Log2(n))。但這是如何工作的?我想如果你把輸入空間加倍,它就變成了N^2,如果你將迭代次數減半,它就變成了Log2N,那麼它們不會相乘?我一直在努力尋找每一個我能找到的例子,並找到模式,但對我來說這是一個新的例子 – Matt
@Matt位O不考慮涉及的因素。這意味着雙或O(n)是O(n)。這就是爲什麼O(logBase10(N))與O(InN)相同; –
好的。說得通。感謝您的所有幫助@Peter。 – Matt