3

ハッシュテーブルを使用する関数を設計する必要があります。基本的にハッシュテーブルにデータを挿入し、アイテムを検索します。通常、関数の実行には 15 秒から 10 分かかります。この関数を c++ で実装して PHP でシステム コールを使用するか、連想配列を使用して php で実装する必要があります。どちらがより効率的でしょう。それぞれの長所と短所は何ですか。

キーは文字列になります。値は、他の 2 つの構造を含む 1 つの構造になります。最初の構造体には基本的に整数の配列が含まれ、2 番目の構造体には整数ペア値の配列が含まれます。

4

2 に答える 2

1

どうやら、PHP 配列はリンクされたハッシュ テーブルとして実装されています。PHP 配列は C レベルでどのように実装されていますか?を参照してください。.

いずれにせよ、300 個のアイテムの場合、使用したコンテナーの種類による速度の違いはほとんどないでしょう。簡単にするために、可能であればPHPにとどまります。

于 2012-07-15T14:45:21.580 に答える
1

PHP は高速な連想配列の実装でよく知られていますが、私の経験によると、C++ は依然として高速です。数か月前、高速プレフィックス マッチングを実装する必要がありました。ハッシュ テーブルには数千のプレフィックスがあり、数百万の文字列が一致していました。PHP と C++ の両方の実装を作成しましたが、C++ のほうが 10 倍以上高速で、メモリの消費量がはるかに少なかったことを覚えています。もちろん、ハッシュテーブルの実装だけでなく、アルゴリズムにも大きく依存します。

于 2012-07-15T14:48:32.007 に答える