0

私は要素の配列を持っています。配列は要素の ID でソートされますが、ID 番号にギャップがあるなど、ID は不連続です。

現在、特定の ID を見つけるために二分探索を使用しています。

ID は 3 バイトで、約 1600 万の可能性があります。特定の配列内の ID の数ははるかに少なく、おそらく 10 000 です。

これは組み込み/plc プラットフォームです。つまり、16 MB のルックアップ テーブルを使用できず、メモリを大量に消費します。私はそのようなビットセットを見てきましたが、それが正しいアプローチであるかどうか、またはそれから配列オフセットを計算する方法がわかりません。

古き良き「メモリの速度」のトレードオフを行いたいので、これは難しいかもしれませんが、メモリがほとんどなく、おそらく2MB以下しかありません。しかし、ハードウェアは固定されています。

編集:配列の要素は特定のアプリケーションに対して固定されており、配列要素の挿入または削除はありません。

ID の検索を高速化するためにルックアップ テーブルなどを作成/事前計算するにはどうすればよいですか?

ありがとう

4

2 に答える 2