C#常用结构比较
来源:互联网 发布:报纸上的大数据 编辑:程序博客网 时间:2024/06/04 17:59
常用数据结构的时间复杂度
程序的复杂度分为时间复杂度和空间复杂度,通过字面上可以看出它们的含义,下面我们主要来看一个集合的时间复杂度,这些集合基本包含了.net里的所有了,呵呵!
Data StructureAddFindDeleteGetByIndexArray (T[])O(n)
O(n)
O(n)
O(1)
Linked list (LinkedList<T>)O(1)
O(n)
O(n)
O(n)
Resizable array list (List<T>)O(1)
O(n)
O(n)
O(1)
Stack (Stack<T>)O(1)
-
O(1)
-
Queue (Queue<T>)O(1)
-
O(1)
-
Hash table (Dictionary<K,T>)O(1)
O(1)
O(1)
-
Tree-based dictionary
(SortedDictionary<K,T>)
O(log n)
O(log n)
O(log n)
-
Hash table based set (HashSet<T>)O(1)
O(1)
O(1)
-
Tree based set (SortedSet<T>)O(log n)
O(log n)
O(log n)
-
如何选择数据结构
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>)
- 当需要保存一组唯一的值,并且元素需要排序时。
0 0
- C#常用结构比较
- Java List Map Set 常用结构比较
- C#中类和结构的比较
- C# 类与结构的比较
- C#高级编程三十七天----结构比较
- 比较常用的C#的正则表达式
- C#字符串转换比较(常用方法) 2011.3
- C#比较常用的函数方便积累
- c#中结构体和类的比较
- c#中结构体和类的比较[转载]
- C# 与 C++ 数据类型比较及结构体转换
- C# 与 C++ 数据类型比较及结构体转换
- C# 与 C++ 数据类型比较及结构体转换
- c#中结构体与类的比较
- C# 与 C++ 数据类型比较及结构体转换
- 关于学习C#的三层结构的优缺点比较
- C#与C++数据类型比较及结构体转换
- C#与C++数据类型比较及结构体转换[整理]
- Java设计模式——接口型模式:适配器模式
- c++命名空间简单用法
- C++ 内存分配 数据存储
- 编写优秀Bug报告的艺术及案例分析
- zoj 3511 Cake Robbery(线段树)
- C#常用结构比较
- 把帮助文档放到XCODE中
- poj 1659 havel-hakimi 定理
- Redis源码分析(八)--- t_hash哈希转换
- 重写Equals为什么要同时重写GetHashCode
- android 布局总结
- 移动端安装包测试
- javascript 如何验证一个字符串是否包含另一个字符串
- 想尽快进入游戏开发行业的必经之路!