聚合分析:二进制计数器

前端之家收集整理的这篇文章主要介绍了聚合分析:二进制计数器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

作为聚合分析的一个例子,我们来看一个k位二进制计数器递增问题,计数器是的初值为0.我们用一个位数组A[0,K-1]作为计数器,其中K=A.length,当计数器保存的二进制值为x时,x的最低位保存在A[0]中,而最高位保存在A[k-1]中,

废话了这么多,

## 代码 ##
#include <iostream>
using namespace std;
void count(int a[],int n)
{
    int i = 0;
    while(i < n && a[i] == 1)
    {
        a[i] = 0;
        i++;
    }
    if(i < n)
        {
    a[i] = 1;
        }
}
/*测试程序*/
int main(int argc,char const *argv[])
{
    int array[6] = {0,0,0};

    for(int i = 0; i <= 21; i++)
    {
        count(array,6);
    }
    for(int i = 5; i >= 0; i--)
    {
        cout << array[i] << " ";
    }
    return 0;
}
## 这个图是我看了一个下午才理解其中的含义 ##

你能说说最后的总代价是怎么来的吗?最后又是怎么摊还分析的吗?

猜你在找的设计模式相关文章