私が知っている b-tree や rb-tree などのデータ構造は、同じキーを探し続けても変わりません。頻繁に使用されるキーの検索を高速化するために、実行時に最適化されるデータ構造を探しています。今、私はこのような単純な実装を持っています:
ValueType MyNaiveMap::get(KeyType key) {
innerMap.addFreq(key);
if (key == mostFreqUsedKey1) {
return val1;
} else if (key == mostFreqUsedKey2) {
return val2;
}
else {
return innerMap.get(key);
}
}
キーは常にint
私のケースにあります。
アップデート:
ハッシュマップについて言及するのを忘れていました。マップが非常に大きなサイズになる可能性があるため、ランタイムで O(n) 複雑なサイズ変更を回避しようとしていました。