next up previous contents index
: downheap() : ヒープソート : ヒープ   目次   索引

ヒープの配列による表現

レベル 0 から順に配列に詰めていくことで, ヒープを配列で表現 できる. インデックスの対応を分かりやすくするために, 0 番目 でなく 1 番目から詰めることにする. 配列を $A$ とすれば,


レベル 0 		 $A[1]$ $2^0$
レベル 1 $A[2], A[3]$ $2^1$
レベル 2 $A[4], A[5], A[6], A[7]$ $2^2$
$\ldots$
レベル $k$ $A[2^k], A[2^k+1], \ldots, A[2^{k+1}-1]$ $2^k$
と対応する. この表現のもとで, 次が成り立つ. $N$ を要素の個数とする. $\lfloor x \rfloor$$x$ を越えない最大の整数とする.

問題 13.2   上の性質を証明せよ.



Nobuki Takayama 平成15年9月12日