为什么树排序的平均情况时间复杂度是
从维基百科得知:
将一个项添加到二叉搜索树上,平均情况下是O(log n)的过程(使用大O符号),因此添加n个项是O(n log n)的过程。
但是我们并不是每次向n个项的树中添加一个项。我们从一个空树开始,并逐渐增加树的大小。
所以它看起来更像:
O(n log n)
?从维基百科得知:
将一个项添加到二叉搜索树上,平均情况下是O(log n)的过程(使用大O符号),因此添加n个项是O(n log n)的过程。
但是我们并不是每次向n个项的树中添加一个项。我们从一个空树开始,并逐渐增加树的大小。
所以它看起来更像:
log1 + log2 + ... + logn = log (1*2*...*n) = log n!
我有所遗漏吗?
log(n!)
可能比n log(n)
更为严格的界限。但在大O符号的世界里,这根本不是事实。正如这里所证明的那样,O(log(n!))
确实等于O(n log(n))
: https://dev59.com/r2sz5IYBdhLWcg3wFUC_ 我猜O(n log(n))
更受欢迎的原因是人们更容易理解它。 - wookie919