快选,每次选一部分,扔掉另一部分,所以是O(N)
假设每次扔掉一半.
(2^k=N)
T(N) =n +n/2+n/4+n/8+n/2^k = n*(1-2^-k)/(1-2^-1) =2N
这是粗略估计,具体看算法导论。
假设每次扔掉一半.
(2^k=N)
T(N) =n +n/2+n/4+n/8+n/2^k = n*(1-2^-k)/(1-2^-1) =2N
这是粗略估计,具体看算法导论。
本文深入探讨了快速选择算法的原理与应用,通过分析每次选取与丢弃元素的策略,得出时间复杂度为O(N)的结论。进一步,通过假设每次丢弃一半元素,推导出具体的时间复杂度公式,并提供了对算法效率的精确估算。
1105

被折叠的 条评论
为什么被折叠?