The Blog Of Tianalangz
阿新 • • 發佈:2019-02-05
作為聚合分析的一個例子,我們來看一個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, 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;
}
## 這個圖是我看了一個下午才理解其中的含義 ##
你能說說最後的總代價是怎麼來的嗎?最後又是怎麼攤還分析的嗎?