一个二进制数,++n次,按位计算,一共会翻转多少次。将所有n次自增的次数加起来求平均,就是均摊分析的想法。
其中最低位肯定每次都要翻转,然后倒数第二位要隔一次才会翻转,倒数第n位要隔2^(n-1)次才翻转。
故翻转的总次数就是n*(1 + 1/2 + 1/4 + ...... + 1/(n-1))
一个二进制数,++n次,按位计算,一共会翻转多少次。将所有n次自增的次数加起来求平均,就是均摊分析的想法。
其中最低位肯定每次都要翻转,然后倒数第二位要隔一次才会翻转,倒数第n位要隔2^(n-1)次才翻转。
故翻转的总次数就是n*(1 + 1/2 + 1/4 + ...... + 1/(n-1))