@张麒乐 感谢投稿,搬运也得讲点技术吧?要不你自己读读你的最后几段?
@逆流之时
感谢投稿,建议多用数学公式表达。
1.log2lowbit(x)+1的期望值用大O符号表示比较好,O(1)。你可以直接使用算式来估计复杂度如下:
E≤n1∑i=0∞(2in−2i+1n)(i+1)=∑i=1∞2ii=2
2.对第一篇日报代码复杂度分析疑似错误。一是你在分析平均复杂度,但是我们要的是最坏情况。二是
E=O(n1∑i=0log2n(2in−2i+1n)2i∗i)=O(4(log2n+1)log2n)=O(log22n)
根据你的数据发现和log22n比值接近,趋于1/4。