在一个应用程序中,我将有大约3000到30000个字符串.在创建之后(从无序的文件中读取)将不会有很多字符串经常被添加(但有时会有!).删除字符串也不会经常发生.将字符串与存储的字符串进行比较将经常发生.
我最好使用什么样的结构,哈希表,树(Red-Black,Splay,......)或者只是在有序列表中(可能是StringArray?)?
(补充说明:一个好的C#实现的链接也将受到赞赏)
听起来你只需要一个哈希表.在HashSet<T>这样似乎是理想的选择.(你似乎不需要钥匙,但Dictionary<T>如果你这样做,那将是正确的选择.)
以下是HashSet<T>对大小不同操作的时间复杂性的总结n.它们部分地基于类型使用数组作为后备数据结构的事实.
O(1),但可能O(n)需要调整数组大小.O(1)O(1)给出理想的哈希表桶)如果有任何错误请有人纠正我.根据我对实现/哈希表的了解,它们只是我最好的猜测.
| 归档时间: |
|
| 查看次数: |
373 次 |
| 最近记录: |