ロゴ
ユニオンペディア
コミュニケーション
Google Play で手に入れよう
新しい! あなたのAndroid™デバイスでユニオンペディアをダウンロードしてください!
無料
ブラウザよりも高速アクセス!
 

二分ヒープ

索引 二分ヒープ

二分ヒープ(にぶんヒープ,バイナリヒープ,Binary heap)とは、二分木を使って作られるヒープ(データ構造)の特に単純な種類のひとつである。それは、二分木に、以下の2つの制約を追加したものとみなせる。.

14 関係: A*二分木二項ヒープヒープヒープソートデータ構造フィボナッチヒープダイクストラ法優先度付きキュー番兵順序集合連想配列GNUコンパイラコレクションTreap

A*

A*(A-star, エースター)探索アルゴリズムは、グラフ探索アルゴリズムの一つ。 最良優先探索を拡張したZ*に、さらにf値として「現時点までの距離」gと「ゴールまでの推定値」hの和を採用したもの。 h は ヒューリスティック関数と呼ばれる。.

新しい!!: 二分ヒープとA* · 続きを見る »

二分木

二分木(binary tree; 二進木、バイナリツリー)は、データ構造の1つである。根付き木構造の中で、あるノード(節点 node)が持つ子の数が高々2であるものをいう。典型的には2つの子はそれぞれ「左」「右」と呼ばれる。 たとえば、二分探索や二分ヒープを実装するために使われる。 簡単な二分木。大きさ9、深さ3、根は値2を持つ 以後、括弧の中は英語表記。.

新しい!!: 二分ヒープと二分木 · 続きを見る »

二項ヒープ

二項ヒープ(にこうヒープ、binomial heap)とは、計算機科学におけるデータ構造(ヒープ)の1つである。特徴は以下の通り。.

新しい!!: 二分ヒープと二項ヒープ · 続きを見る »

ヒープ

ヒープ(heap)とは、「子要素は親要素より常に大きいか等しい(または常に小さいか等しい)」という制約を持つ木構造の事。単に「ヒープ」という場合、二分木を使った二分ヒープを指すことが多いため、そちらを参照すること。 二分ヒープのインデックス付け.

新しい!!: 二分ヒープとヒープ · 続きを見る »

ヒープソート

ヒープソート (heap sort) とはリストの並べ替えを二分ヒープ木を用いて行うソートのアルゴリズムである(ヒープ領域とは無関係であることに注意する)。 アルゴリズムは、以下のように2つの段階から構成される。.

新しい!!: 二分ヒープとヒープソート · 続きを見る »

データ構造

データ構造(データこうぞう、data structure)は、計算機科学において、データの集まりをコンピュータの中で効果的に扱うため、一定の形式に系統立てて格納するときの形式のことである。 ソフトウェア開発において、データ構造についてどのような設計を行うかは、プログラム(アルゴリズム)の効率に大きく影響する。そのため、さまざまなデータ構造が考え出されている。 多くのプログラムの設計において、データ構造の選択は主要な問題である。これは大規模システムの構築において、実装の困難さや質、最終的なパフォーマンスはベストのデータ構造を選択したかどうかに大きく依存してきたという経験の結果である。多くの場合、データ構造が決まれば、利用するアルゴリズムは比較的自明に決まる。しかし場合によっては、順番が逆になる。つまり、与えられた仕事をこなす最適なアルゴリズムを使うために、そのアルゴリズムが前提としている特定のデータ構造が選択される。いずれにしても適切なデータ構造の選択は極めて重要である。 この洞察は、多くの定式化された設計手法やプログラミング言語において、データ構造がアルゴリズムよりもキーとなる構成要素となっていることに現れている。大半の言語は異なるアプリケーションにおいてデータ構造を安全に再利用できるよう、実装の詳細をインターフェイスの背後に隠蔽するような、モジュール化のしくみを備えている。C++やJavaといったオブジェクト指向プログラミング言語はクラスをこの目的に用いている。 データ構造は専門的なプログラミングにとって非常に重要なので、C++におけるSTLや、Java API、および.NET Frameworkのようなプログラミング言語の標準ライブラリや環境において多くのデータ構造がサポートされている。 データ構造が実装を表すのかインターフェースを表すのかについてはいくらか議論がある。どのように見えるかは相対的な問題なのかもしれない。データ構造は2つの関数の間にあるインターフェイスとして見ることもできるし、データ型に基づいて構成されたストレージにアクセスする方法を実装したものとして見ることもできる。.

新しい!!: 二分ヒープとデータ構造 · 続きを見る »

フィボナッチヒープ

フィボナッチヒープ(Fibonacci heap)とは、計算機科学におけるデータ構造(ヒープ)の1つ。 フィボナッチヒープの名前は、処理時間を解析する際にフィボナッチ数が使用されたことによる。.

新しい!!: 二分ヒープとフィボナッチヒープ · 続きを見る »

ダイクストラ法

ダイクストラ法の動作のアニメーション ダイクストラ法(だいくすとらほう、Dijkstra's algorithm)はグラフ理論における辺の重みが非負数の場合の単一始点最短経路問題を解くための最良優先探索によるアルゴリズムである。辺の重みに負数を含む場合はベルマン-フォード法などが使える。辺の重みが全て同一の非負数の場合は幅優先探索が速く、線形時間で最短路を計算可能である。また、無向グラフで辺の重みが正整数の場合は、Thorupのアルゴリズムによって線形時間での計算が可能であるが、実用性はあまり高くない。.

新しい!!: 二分ヒープとダイクストラ法 · 続きを見る »

優先度付きキュー

優先度付きキュー(ゆうせんどつき -、priority queue)は、以下の4つの操作をサポートする抽象データ型である。.

新しい!!: 二分ヒープと優先度付きキュー · 続きを見る »

番兵

兵(ばんぺい、英語:sentinel)は基地、野営地の出入りを警備する任務に付く兵士を指す。歩哨とも言う。 転じてプログラミング用語としては、データの終了を示すために配置される特殊なデータを指す。番人(ばんにん)とも言う。以下ではこの意味について示す。 実際にはこの用語は、微妙に異なる以下の2つの意味で使われる。.

新しい!!: 二分ヒープと番兵 · 続きを見る »

順序集合

数学において順序集合(じゅんじょしゅうごう、ordered set)とは「順序」の概念が定義された集合の事で、「順序」とは大小、高低、長短等の序列に関わる概念を抽象化したものである。ただし、順序集合内の2つの元, に順序関係が定まっている(「比較可能」である)必要はなく、両者が「比較不能」であってもよい。 比較不能のケースを許容していることを強調して順序集合の事を半順序集合(はんじゅんじょしゅうごう、partially ordered set, poset)ともいう。一方、半順序集合の中で比較不能のケースがないものを特に全順序集合 という。(「半順序」という言葉が「全順序」の対義語ではない事に注意。全順序集合も半順序集合の一種である。) 全順序集合の簡単な例は整数の集合や実数の集合で、通常の大小比較を順序とみなしたものがある。 一方、全順序ではない半順序集合の例としては、正の整数全体の集合に整除関係で順序を入れたものや、(2つ以上元を含む)集合の冪集合において、包含関係を順序とみなしたものがある。例えば2元集合 において と はいずれも他方を包含していないので S の冪集合は全順序ではない。 実生活に近い例では、「AさんはBさんの子孫である」という事を「A<B」という大小関係とみなす事で人間全体の集合を半順序集合とみなせる。AさんとBさんはどちらも他方の子孫でない事もありうる(兄弟同士、叔父と甥、赤の他人等)ので、この順序集合は全順序ではない。.

新しい!!: 二分ヒープと順序集合 · 続きを見る »

連想配列

連想配列(れんそうはいれつ、associative array.)とは、コンピュータプログラミングにおいて、添え字にスカラー数値以外のデータ型(文字列型等)も使用できる配列である。抽象データ型のひとつ。連想リスト、連想コンテナ、辞書(あるいはカタカナでディクショナリ dictionary)、ハッシュ(hash)、マップ(map)とも呼ばれる。 歴史的には、最初に LISP の連想リストとして広く認知された。その後、SNOBOL で table として、AWK で連想配列として実装したことで、その潜在能力がさらに広く知られるようになった。現在、Ruby など一部の言語では、添え字にはどのようなデータでも使えるものもある。.

新しい!!: 二分ヒープと連想配列 · 続きを見る »

GNUコンパイラコレクション

GNU Compiler Collection(グニューコンパイラコレクション)は、GNUのコンパイラ群である。略称は「GCC(ジーシーシー)」。GNUツールチェーンの中核コンポーネント。.

新しい!!: 二分ヒープとGNUコンパイラコレクション · 続きを見る »

Treap

Treap (ツリープ)は、乱択アルゴリズムを使用した平衡2分探索木の1つ。1989年に Cecilia R. Aragon と Raimund Seidel が発表した 。平衡2分探索木のアルゴリズムの中ではアルゴリズムが単純であり、コード量が少なくてすむ。Treap という名称は Tree (木構造)と Heap (ヒープ)という2つの単語を組み合わせて作られた。.

新しい!!: 二分ヒープとTreap · 続きを見る »

出ていきます入ってきます
ヘイ!私たちは今、Facebook上です! »