Big -O表示法

时间:2011-05-05 03:36:31

标签: big-o

嘿,我有一个问题。  说t(n) = O(n log(n)),你知道这是真的。

然后你给出这些陈述并告诉他们是否必须是真或假。 t(n) = n^4t(n) = O(N^4)

语句t(n) = n^4为false,而语句t(n) = O(N^4)为true。为什么呢?

3 个答案:

答案 0 :(得分:1)

您必须记住,当您撰写t(n) = O(n log(n))t(n) = O(N^4)时,其实际含义是t(n) O(...)中的它等于它(因为O(...)是一组函数,函数不能等于一组函数)。但是,当您撰写f(n) = n^4时,这意味着f(n)等于n^4

现在f(n)位于O(n log n)O(n^4)也位于O(n^4),因为O(n log n)n^4的超集。但是,它不能等于n^4,因为O(n log n)不在{{1}}中。

答案 1 :(得分:0)

Big O表示法的概念是它表示时间的抽象函数,它关注算法中最慢的部分并忽略影响执行时间的事情(即t(n))但实际上并没有做出巨大的影响差。

例如,如果你的函数在一组大小为n的项目上运行并且只是循环执行它们执行一些计算,那么你会说t(n)= O(n)。假设您根据某些标准仅对少数元素执行了某些操作,您仍然会说t(n)= O(n)但实际所用时间t(n)不会直接与n的函数关系,因此t (n)= nx不成立。

答案 2 :(得分:0)

查看this中的第二个等式。根据这个等式,t(n)= n ^ 4 = O(n ^ 4)是显而易见的。

t(n)= O(n log n)是假的,因为∀M> 0,x,∃n> x,t(n)= n ^ 4> M(n log n)。 (如果n> log n且n> M,n ^ 4> M * n ^ 3 = M(n * n ^ 2)> M(n * log n)= M(n log n),并且n> ;当(大致)n> 5)

时记录n