ヒープソートとは? ヒープソートの考え方は、まず、データをヒープ構造にし、完成したらデータの先頭の値を取り出す。そしてまたヒープ構造を作り・・・という繰り返しである。 ここでヒープ構造とは、簡単に言うと、2分木の各節点にデータを保持し、親のデータが2つの子のデータよりも大きくなるように作られたデータ構造である。 つまり、これから分かることは全てのデータの中で2分木の「根」、すなわちデータの先頭に最大値を持つデータが必ず存在する。という事である。 考え方 配列N[]に次のようなデータが格納されているとする。 これを2分木で表現すると、 上図のようになる。 ヒープソートを行うには、まず、この配列(2分木)をヒープ構造にする必要がある。ヒープ構造の特徴は先にも述べた通り、次のようなものである。 二分木の根には必ず最大値がくる。 親子関係、すなわちN[a]・N[2a+1]・N[2a+2]の 値を

