我在关于运行时间的任务上遇到问题。总结整数的算法的运行时间
问题陈述是: “伊莎贝尔有一个有趣的方式来总结n个整数的数组A中的值,其中n是2的幂,她创建了一个A的一半大小的数组B,对于i = 0,1,...,(n/2)-1,设B [i] = A [2i] + A [2i + 1],如果B的大小为1,则输出B [0] ,她用B代替A,然后重复这个过程,她算法的运行时间是多少?“
这会被认为是O(log n)还是O(n)?我在考虑O(log n),因为你会继续将数组分成一半,直到得到最终结果,我相信O(log n)的基础是你不遍历整个数据结构。然而,为了计算总和,你必须访问数组中的每个元素,这使我认为它可能是O(n)。任何帮助理解这将不胜感激。
这显然是家庭作业......我认为我们应该避免给这些问题明确的答案。 – 2013-02-25 23:43:44
@GeorgeSkoptsov我同意,我认为你的回答比我的好。关于如何处理作业问题的meta已经有很多讨论,并且我记得读到它们应该像普通问题一样对待。但我可能会误解(或政策可能已经改变) – mgibsonbr 2013-02-25 23:48:28
呵呵,我没有遵循meta ...我不同意这个政策。我可以理解帮助某人解决问题的方法,但不能将解决方案提供给明确要求自己推导出来的人。 – 2013-02-25 23:57:48