@张麒乐 感谢投稿,搬运也得讲点技术吧?要不你自己读读你的最后几段?

@逆流之时

感谢投稿,建议多用数学公式表达。

1.log2lowbit(x)+1log_2 lowbit(x)+1的期望值用大O符号表示比较好,O(1)O(1)。你可以直接使用算式来估计复杂度如下:

E1ni=0(n2in2i+1)(i+1)=i=1i2i=2E\leq\frac{1}{n}\sum_{i=0}^{\infty} (\frac{n}{2^i}-\frac{n}{2^{i+1}})(i+1)=\sum_{i=1}^{\infty}\frac{i}{2^{i}}= 2

2.对第一篇日报代码复杂度分析疑似错误。一是你在分析平均复杂度,但是我们要的是最坏情况。二是

E=O(1ni=0log2n(n2in2i+1)2ii)=O((log2n+1)log2n4)=O(log22n)E=O(\frac{1}{n}\sum_{i=0}^{\log_2 n} (\frac{n}{2^i}-\frac{n}{2^{i+1}})2^i*i)=O(\frac{(\log_2n+1)\log_2n}{4})=O(\log_2^2 n)

根据你的数据发现和log22nlog_2^2 n比值接近,趋于1/4。

2019/9/14 15:03
11751