鍵Kを値Vにマッピングする連想集合を実装したいと思います。さらに、各値Vを重みに関連づけたいので、Map [K→(V、Double) ]。"制限されたメモリマップ"のデータ構造
考えられるのは、このコレクションのメモリバージョンが制限されていることです。これは、重みしきい値tを超えた要素のみを格納します。このコレクションに要素eを挿入するたびに、eの重みをある量だけ増加させます。 1であり、他のすべての要素e '!= eの重みをある減衰係数、例えば0.0001で減衰させる。 これは、このコレクション内に存在する要素が、どちらかであることを保証します。 最近、またはb。 が頻繁にです。
もちろん、減衰動作を能動的に実行するこのようなデータ構造のナイーブなバージョンを実装し、すべての要素のしきい値tの妥当性をチェックすることができます。それはひどく非効率的です。
まさにそこにデータ構造があるのだろうと私は思っています。たぶん私の要件を実装するために使用できる関連するデータ構造があります。入力は高く評価されます。
私はMRUディクショナリと呼ばれるものをC#で作成しましたが、それは本質的にあなたが求めているものですが、キャッシュのサイズに比例します。この記事はhttp://www.informit.com/guides/content.aspx?g=dotnet&seqNum=626 –