2010-10-07 77 views
0
while (n >= 1) 

n /= 2; 

我无法获得大O符号此大O符号帮助

+15

拜托。认真地,尝试一些数字,看看你是否检测到一个模式,如果它不是代数明显的。 – Pointy 2010-10-07 23:24:04

+0

这不是一个问题。 – JoshD 2010-10-07 23:26:23

回答

4

任何算法减少了一半每次问题是O(日志(N))。

+8

一般而言,当问题被标记为家庭作业时,想法是给他们提示解决问题,而不是直接给他们答案。这让他们了解问题,这是作业的重点。如果你也给出解释, – Paul 2010-10-07 23:29:20

+1

会很棒。 – zengr 2010-10-07 23:29:48

+2

如果一位教师实际上只给答案一个问题全额分数,我认为是错误的。有时候,在回答问题和倒退时问题会更好理解,然后问题变得更容易理解。 – Anthony 2010-10-07 23:31:35

5

我只是为了说明而遵循波蒂的建议。

尝试8.

4 2 1 0: 4 iterations. 

尝试32

16 8 4 2 1 0: 6 iterations. 

尝试66

33 16 8 4 2 1 0: 7 iterations. 

那么......在最初的数字不断变化,以及如何迭代的数量变化?

+0

66不应该是'33 16 8 4 2 1 0'吗? – Paul 2010-10-07 23:34:32

+0

@Paul:固定:P – Potatoswatter 2010-10-07 23:52:08

+0

足够接近我想。 :P – Paul 2010-10-08 00:03:01

-1

T(N)= O(日志 N)