我只是在为我的算法课学习,并且一直在研究 QuickSort。我了解算法及其工作原理,但不了解如何在一天结束时获得它所做的比较次数,或者 logn 的实际含义。
我了解以下基础知识:
x=logb(Y) then
b^x = Y
但这在算法性能方面意味着什么?这是您需要进行的比较次数,我知道……但整个想法似乎如此难以理解。就像,对于 QuickSort,每个级别 K 调用都涉及2^k
调用,每个调用都涉及长度的子列表n/2^K.
因此,求和以找到比较次数:
log n
Σ 2^k. 2(n/2^k) = 2n(1+logn)
k=0
为什么我们总结为 log n ?2n(1+logn) 是从哪里来的?对不起,我的描述含糊不清,我很困惑。