我已经详细研究了CLRS的算法简介,但有一点尚不清楚。
为什么max(m,n)= O(m,n)?
请解释一下,这将是很大的帮助!
答案 0 :(得分:1)
max(m, n) = O(m+n)
只是意味着,渐渐地说,max(m, n)
的增长速度不会比m+n
快。自max(m, n) < m + n
m, n
以来,所有max(m, n)
都必须如此。请注意m
等于n
或m + n
,其中任何一个都保证小于m
(只要n
和{{1}是非负的,可以假设。)
答案 1 :(得分:1)
严格地说G(n)∈O(F(n))意味着G(n)属于渐近约束或等于某些C * F(n)的无限函数集。
大哦作弊表
<强>误解强>
表达某事物= O(f(n))在数学上是不正确的,尽管即使大多数教授犯了这个错误,也应该是∈O(f(n))
因此Max(M,N)∈O(M + N)是正确的,因为Max(M,N)渐近约束低于或等于 M + N.
所以1∈O(log n)∈O(n)∈O(n ^ 2)∈O(n ^ 2)∈O(n!)。
这花了我一些时间来解决这个问题但是一旦你这么做就很容易。一旦进入算法和数据结构中的更高级主题,完全掌握这一点至关重要。