常用数据结构的时间复杂度
数据结构最佳适用场景
Array (T[])
当元素的数量是固定的,并且需要使用下标时。
Linked list (LinkedList<T>)
当元素需要能够在列表的两端添加时。否则使用 List<T>。
Resizable array list (List<T>)
当元素的数量不是固定的,并且需要使用下标时。
Stack (Stack<T>)
当需要实现 LIFO(Last In First Out)时。
Queue (Queue<T>)
当需要实现 FIFO(First In First Out)时。
Hash table (Dictionary<K,T>)
当需要使用键值对(Key-Value)来快速添加和查找,并且元素没有特定的顺序时。
Tree-based dictionary (SortedDictionary<K,T>)
当需要使用键值对(Key-Value)来快速添加和查找,并且元素根据 Key 来排序时。
Hash table based set (HashSet<T>)
当需要保存一组唯一的值,并且元素没有特定顺序时。
Tree based set (SortedSet<T>)
当需要保存一组唯一的值,并且元素需要排序时。
-------------------------------------------------------------------------
转载自仓储大叔博文:http://www.cnblogs.com/lori/p/3962707.html
相关参考资料:
An Extensive Examination of Data Structures Using C# 2.0