当我不断寻找相同的键时,我所知道的数据结构(例如 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) 复杂的。