Logn实际上是什么意思?
|
我正在为我的算法课程学习,并且一直在寻找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)来自哪里?对我的描述含糊不清,我感到很困惑。
没有找到相关结果
已邀请:
5 个回复
疮痪徘弦漏
凄嘛姥
树中的节点数为7,但树的高点为log 7 = 3,当您使用除法和征服方法时,日志就会出现,以快速排序的方式将列表分为2个子列表,并继续进行此操作,直到生成丰富的小列表为止,除法花费了
时间(通常情况下),因为除法的最高值为
,所以每个级别的划分都需要O(n),因为平均而言,每个级别中您划分的N个数字(可能有太多要划分的列表,但是平均数量是在每个级别中为N,实际上列表的一些计数为N)。因此,为了便于观察,如果您有平衡的分区树,则您有ѭ6的时间进行分区,这意味着树的高度。
旗低饶彤
埃输林桨铃
总和遍历树的每个级别。 k = 0在顶部,k = log(n)是按钮。该树将始终具有高度log2(n)(因为它是平衡的二叉树)。 做一点数学:
当然,这是很多工作要做,尤其是在您具有更复杂的算法的情况下。在那种情况下,您对于Master Theorem非常满意,但就目前而言,这可能会让您更加困惑。这是非常理论性的,因此如果您不立即理解,请不要担心。
讹巳漓把备