java實現時間複雜度O(1)的LFU緩存

LFU緩存通常須要排序來解決命中率問題(上一篇的LFU實現也是利用了Collections.sort),致使時間複雜度較高。下面採用一種算法讓LFU的時間複雜度成爲O(1)。java 數據設計:node 1,一個雙向鏈表來保存命中數(下面代碼的NodeCount<K> countHead,結構中包含2的map)。算法 2,命中數相同的放在一個雙向鏈表的map中(這裏用的是LinkedHashMap
相關文章
相關標籤/搜索