变量M有1-20上界时,O(N*M+N+M)的渐近时间复杂度判定
时间复杂度分析中M的常量判定问题
在渐近复杂度分析的规则里,当变量有明确且固定的取值上限时,完全可以将其视为常量——你的情况里M最大仅为20,无法随输入规模趋向无穷,所以它符合这个判定条件。
渐近复杂度的核心是聚焦算法在输入规模(这里指N)趋向无穷时的性能变化。M的取值被限制在1-20这个极小的区间,不管N怎么增长,M对复杂度的影响都是固定倍数级的,不会改变复杂度的阶。
拿你的算法复杂度O(N*M + N + M)来说,当把M当作常量处理时:
N*M等价于O(N)(因为20是常量,常量乘N的复杂度阶还是N)N本身就是O(N)M属于O(1)(固定范围的常量级开销)
所以整体复杂度可以简化为O(N)。
哪怕M是变量,但它的取值不会随N的增大而扩张,也不会突破20的上限,因此在渐近分析中不需要把它当作和N同量级的变量看待。实际工程里,这种小范围的变量通常都会被当作常量处理,因为它不会主导算法在大数据量下的性能表现。
内容的提问来源于stack exchange,提问作者user31685420
相关产品推荐
相关产品推荐

