2010-01-03から1日間の記事一覧

ヒープソートをやってみる。

常に子よりも親が大きい(小さい)値の二分木をヒープという。 今度はヒープを使ったソート、ヒープソートをやってみます。 def heap(array,n) if n > 0 parent = (n - 1) / 2 # 親の位置 if array[n] > array[parent] tmp = array[n] array[n] = array[pare…

常に子よりも親が大きい(小さい)値の二分木をヒープという。

常に子よりも親が大きい(小さい)値の二分木をヒープという。2分木を配列で表現すると各要素の位置関係は n の親は n - 1 / 2 n の左の子は 2 * n + 1 n の右の子は 2 * (n + 1) となる。 0 | +--+--+ 1 2 | | +-+-+ +-+-+ | | | | 3 4 5 6 [0,1,2,3,4,5,6]…