パフォーマンスを向上させるために、実行時にデータ構造の表現を変更するプログラム/アルゴリズムはどれですか?
コンテキスト: データ構造は、実世界の概念がどのように構造化され、コンピューター メモリ内で表現されるかを「定義」します。さまざまな種類の計算では、許容できるパフォーマンスを達成するために、さまざまなデータ構造を使用する必要があります (たとえば、リンク リストと配列の実装)。
自己適応型 (自己更新を参照) データ構造は、具体的な使用パターン (自己平衡ツリーなど) に従って内部状態を変更するデータ構造です。これらの変更は内部的なものであり、データに依存します。さらに、これらの変更は設計上想定されています。
他のアルゴリズムは、表現の外部変更から恩恵を受けることができます。たとえば、行列乗算では、「2 番目の行列」を転置する (キャッシュがより効率的に使用されるようにする) ことはよく知られているパフォーマンス トリックです。これは実際には行列表現を行優先から列優先に変更しています。"A" は "Transposed(A)" と同じではないため、プログラムの意味を正しく保つために、乗算の後に 2 番目の行列が再び転置されます。
2 番目の例は、プログラムの起動時にリンク リストを使用して「データ構造」にデータを入力し、リストの内容が「安定」したら配列ベースの実装に変更することです。
パフォーマンスを向上させるために、アプリケーションで表現の外部変更が実行される他のサンプル プログラムで同様の経験を持つプログラマーを探しています。したがって、データ構造の表現 (選択された実装) は、実行時にプログラムの明示的な部分として変更されます。