寻找跟踪"使用频率"的数据结构(列表);

时间:2016-01-26 12:29:04

标签: c# .net algorithm data-structures

对于不良措辞和复杂问题提前道歉,英语是我的第二语言。

我正在寻找一个数据结构来保存一个数组/列表/对象集合(在我的例子中 - 整数ID - 但这并不重要),将跟踪&# 34;使用频率"元素。所以我可以运行后台作业并删除较少使用的元素(以释放内存使用)。

当某个元素被访问或搜索时 - 元素被移动到表面",将较少使用的元素"推到底部" ;。同样,目标是确定"较少访问"价值并不时删除它们。

我正在考虑编写自己的类,继承/继承一些现有的 list 结构(可能是LinkedList<T,T>Queue<T>),然后重载一些&#34; GetElement&# 34;方法,以便它返回元素并将其移动到列表的开头&#34;。所以稍后,在我的后台工作中,我可以从列表的末尾删除元素&#34; (b / c它们的访问频率较低)。

  1. 我是朝着正确的方向吗?
  2. .NET中是否有任何内置的数据结构或者一些众所周知的做法?我试着谷歌搜索,没有找到任何东西。但我敢打赌,这个问题与计算历史一样古老:)
  3. 谢谢!

    更新:感谢您的评论。原来&#34; LRU&#34;它是用简单的英语称呼的。我正在关闭这个问题,因为谷歌搜索&#34; LRU缓存c#&#34;提供了大量的答案。

0 个答案:

没有答案