运行此特定For循环的时间

时间:2015-02-19 02:51:46

标签: algorithm runtime

我正在研究算法问题,并希望检查我对这一特定行的运行时间的直觉:

for i= floor(A.heapsize/2)+1 to A.heapsize //iterate through leaves of heap

其中A.heap-size与n相同,for循环中的其他所有内容都需要恒定时间。循环是否在O(n)时间内运行?

2 个答案:

答案 0 :(得分:2)

是的,是O(n)。常数因子从big-O表示法中删除,无论它是否大于1或小于1。在您的情况下,常数因子是½。

答案 1 :(得分:1)

Big-O 运行时。运行时只能通过基准测试来确定。相反,它是算法复杂性;虽然两者是相关的(AC有效地定义了RT如何随输入大小增长),但它们是不可互换的。

说得对,一个范围内的单个for循环总是 O(n)。请注意,任何不断的修改(例如,只迭代列表的一半)不会改变操作的AC,即使它明显使操作花费的时间更少(AC和RT不同的原因示例);迭代次数仍然与heapsize的值线性增长。