这里可以使用数学计算证明,将 O(m^2n) 和 O(n^2) 两个函数进行比较。下面通过示例代码验证:
假设 m=n=1000 ,则计算 O(m^2n) 的时间复杂度:
for i in range(1000):
for j in range(1000):
for k in range(1000):
# do something
上述代码中,i 循环的次数是 1000 次,j 循环的次数是 1000 次,k 循环的次数也是 1000 次,所以总共的循环次数为 1000 * 1000 * 1000 = 10^9 次,因此 O(m^2n) 的时间复杂度为 O(10^9) 。
再看 O(n^2) 的时间复杂度:
for i in range(1000):
for j in range(1000):
# do something
上述代码中,i 循环的次数是 1000 次,j 循环的次数也是 1000 次,所以总共的循环次数为 1000 * 1000 = 10^6 次,因此 O(n^2) 的时间复杂度为 O(10^6)。
从上述计算可以发现,O(m^2n) 的时间复杂度更大,因此 O(m^2n) 的大写O更大。