dR_*_*dR_ 1 .net c# data-structures
我正在寻找C#中一个高效的数据结构,它允许我保留一份(由用户)订购的项目列表,而不需要重复.
我的意思是由用户订购,即:
我需要在更改时在数据库中不断更新订单,以便我可以在开始时加载它.
我需要的操作:
所有这些操作都将是频繁且同样重要的.
我假设"有效"你的意思是渐近有效.如果情况并非如此,那么澄清问题.
索引和任意插入的组合是一个棘手的问题.
List<T>s - 它只是数组上的一个薄包装 - 在结尾处有O(1)插入/删除,在开头有O(n)插入/删除,以及O(1)索引.检查唯一性是O(n).没有适合您需求的单一数据结构.我的建议是:
这将为您提供O(1)唯一性检查和O(lg n)索引,插入和删除.
我注意到这个数据结构为你提供了O(1)的问题答案"这个集合中的这个项目是什么?" 但O(n)回答了"它在哪里?"的问题.因此,如果您需要快速反向索引操作,那么您手上的问题就会大得多.