厳密な実装とコンピューター サイエンスの観点から、Php 配列のデータ構造をどのように分類しますか? 連想配列ですか?ハッシュ?辞書?... ?
4 に答える
PHPマニュアルから:
PHP の配列は、実際には順序付きマップです。マップは、値をキーに関連付けるタイプです。このタイプは、いくつかの異なる用途に最適化されています。配列、リスト (ベクトル)、ハッシュ テーブル (マップの実装)、辞書、コレクション、スタック、キューなどとして扱うことができます。
まあ、それはあなたがそれをどのように分類したいかによって異なります。私は、運用のパフォーマンスによる分類を選択します。
たとえば、コンピューター サイエンス用語の真の配列のルックアップ時間は O(1) ですが、リンク リストのルックアップ時間は O(n) です。挿入と削除は、連結リストでは O(1) ですが、配列では O(n) です。
PHP配列の実際のパフォーマンスがどうなるかはわかりませんが、それらのいくつかの基本的な操作を測定し、それらを「真のコンピューターサイエンスデータ構造」から期待されるものと比較すると、それを分類できるはずです.
私の意見では、それを定義するのは少し難しいです。ただし、連想配列に対して定義された操作のほとんどは PHP 配列で使用できるため、連想配列として分類すると思います。
それは、実際に何を定義したいかによって異なります。ディクショナリまたはマップはデータ型の動作を参照し、ハッシュマップはその特定の実装を参照します。配列という用語は少し色付けされています。厳密に言えば、具体的な実装を指しますが、リストは配列のようなデータ型を指す一般的な用語です。ただし、 arrayをlistの同義語として使用することは非常に一般的です。