ヒープソート 単語

4件

ヒープソート

1.1千文字の記事
  • twitter
  • facebook
  • はてな
  • LINE

ヒープソートはソートアルゴリズムの一種。

ヒープを使ったソートだからヒープソート。まんまである。計算機科学ではヒープという言葉にいくつか意味があるが、この場合いわゆるデータ構造のバイナリヒープにあたる。

均O(n log n)、最悪O(n log n)、内部ソートメモリも食わないという優秀なアルゴリズム・・・であるが、凝った構造が災いして時代に合わない部分もあったり。

ちなみに、ヒープソートはヒープ構造を利用したソートと言われるし実際そうだが、実はヒープという構造自体がこのソートのために考案されたものらしい。

安定ソートではない。

原理

ヒープソートは検索力を高めた選択ソートということができる。

選択ソートではループ毎に一番小さな値が何かという情報のみを記憶し、較途上の情報をほとんど全て捨ててしまう。これでは効率が悪いので、ヒープソートでは今一番小さい値をできるだけ素く見つけられる構造(配列上のバイナリヒープ)を最初に作ってしまい、そこから選択ソートをしていくという二段構えの処理を行う。

前処理の段階では値の大小関係についての交通整理を行っており、データ全体としてソート済みでないものの、最小値(最大値) 決定に余計な選択肢が入らない大まかに整った状態ができる。英単語heapという言葉は、雑然とではあるが全体として積み上がって山になったものの集まりを指すがこのような「完全にってはいないがバラバラというわけでもない」状態から連想されたものであろう。

ヒープそのものについてはかなり細かい話になるので省略。構築の速さに定評があり、先にヒープを作る一手間を入れても元が取れるというのが面いところ。大部分はソートというよりツリーの再構築処理である。

性能検討

理論上はクイックソートに匹敵する速度と外れのない性、省スペースを兼ね備えた優秀なソートである。しかし一方で現代コンピュータ設計に適合しない弱点も抱えてしまっている。

メモリを食わず性安定という特性から組み込み用には有力な選択肢の一つ。この場合キャッシュを気にするような環境でない可性もあり、弱点は問題にならないかもしれない。

関連項目

この記事を編集する

掲示板

掲示板に書き込みがありません。

おすすめトレンド

ニコニ広告で宣伝された記事

急上昇ワード改

最終更新:2025/01/09(木) 08:00

ほめられた記事

最終更新:2025/01/09(木) 07:00

ウォッチリストに追加しました!

すでにウォッチリストに
入っています。

OK

追加に失敗しました。

OK

追加にはログインが必要です。

           

ほめた!

すでにほめています。

すでにほめています。

ほめるを取消しました。

OK

ほめるに失敗しました。

OK

ほめるの取消しに失敗しました。

OK

ほめるにはログインが必要です。

タグ編集にはログインが必要です。

タグ編集には利用規約の同意が必要です。

TOP