大 O 表示法,Python - 如何正确扩展“5 + n(mlogm + 21)”
Big-O notation, Python - How do I correctly expand "5 + n(mlogm + 21)"
我正在写一个 python 定义,它有一个 O(n) 的 for 循环,但在它里面使用 python 里面的 list.sort() 定义,它有 O( n log n)..
我得到的时间复杂度是 - 5 + n(mlogm + 21)
我不确定如何将其转换为 Big-O,因为 mlogm 显然是长 运行 中最糟糕的情况,但在 for 循环中,我不确定如何得出正确答案。
"big O"的定义如下:f(n) = O(g(n))表示存在正常数c和k,使得0≤f(n)≤cg( n) 对于所有 n ≥ k。也就是说,对于上面的示例,它应该是 O(n(mlog(m))),假设 m > 1。
如果m == 1,则log(m) == 0,所以表示法应该是O(n)。如果两者都可行,您可能需要考虑使用 O(nmlog(m) + n))
我正在写一个 python 定义,它有一个 O(n) 的 for 循环,但在它里面使用 python 里面的 list.sort() 定义,它有 O( n log n)..
我得到的时间复杂度是 - 5 + n(mlogm + 21)
我不确定如何将其转换为 Big-O,因为 mlogm 显然是长 运行 中最糟糕的情况,但在 for 循环中,我不确定如何得出正确答案。
"big O"的定义如下:f(n) = O(g(n))表示存在正常数c和k,使得0≤f(n)≤cg( n) 对于所有 n ≥ k。也就是说,对于上面的示例,它应该是 O(n(mlog(m))),假设 m > 1。
如果m == 1,则log(m) == 0,所以表示法应该是O(n)。如果两者都可行,您可能需要考虑使用 O(nmlog(m) + n))