「ヒープ」という用語をさまざまな概念に適用する際のあいまいさはなぜですか?
「ヒープ」という用語は、次の 2 つの異なる概念に適用されます。コンピューター サイエンス: 動的メモリ割り当てのためのランタイム ヒープと、ヒープとして知られるデータ構造。この二重の用法は、2 つの概念の間に根本的なつながりがあるかどうかについて疑問を引き起こす可能性があります。
Donald Knuth によれば、メモリ割り当てプールを表す「ヒープ」の使用は 1975 年頃に出現しました。しかし、この用語は現在では使用されています。データ構造のコンテキストにおけるより長い歴史では、最大値または最小値の抽出を優先するツリー状の配置を指します。
Knuth 氏は、ランタイム メモリへの「ヒープ」の適用は、伝統的な意味で、無秩序な山を指します。この文脈では、ヒープはさまざまなサイズの空きメモリ ブロックのコレクションとして機能し、素材の山や蓄積に似ています。
この共通の語源にもかかわらず、「ヒープ」の 2 つの概念は実際の機能において大きく異なります。 。ランタイム ヒープは動的メモリ割り当てにおいて重要な役割を果たし、実行時のメモリの割り当てと割り当て解除を可能にします。一方、データ構造ヒープは、効率的な並べ替えと優先順位ベースの操作に使用される高度に構造化されたツリーです。
したがって、「ヒープ」という用語の歴史的使用は、ヒープ データに由来している可能性があります。構造上、2 つの概念は異なる役割と実装を持って別々に進化してきました。
以上がコンピューターサイエンスにおいて「ヒープ」に 2 つの異なる意味があるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。