BIT的淺談,簡單理解
阿新 • • 發佈:2018-11-08
轉部落格園(地址):http://www.cnblogs.com/justforgl/archive/2012/07/27/2612364.html
先看一下這個圖,可以找到一定的規律:
- 陣列A的下標 等於 這一列上最高的部分陣列C的下標
- 滿二叉樹的每一個結點對應陣列A中的一個元素
A[1] = C[1]
A[2] = C[1] + C[2]
A[3] = C[3]
A[4] = C[1] + C[2] + C[3] + C[4]
A[5] = C[5]
A[6] = C[5] + C[6]
A[7] = C[7]
A[8] = C[1] + C[2] + C[3] + C[4] + C[5] + C[6] + C[7] + C[8]
而確定C有幾項,又該如何確定?
感覺太巧妙啦。居然可以利用二進位制來確定項數
從1 ~ 8的二進位制列舉
0001 項數1 0個0 2^0
0010 項數2 1個0 2^1
0011 項數1 0個0 2^0
0100 項數4 2個0 2^2
0101 項數1 0個0 2^0
0110 項數2 1個0 2^1
0111 項數1 0個0 2^0
1000 項數8 3個0 2^3
2 ^ x = i & (- i)
再續。。。。。。。。