博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据结构~时间复杂度
阅读量:6643 次
发布时间:2019-06-25

本文共 1038 字,大约阅读时间需要 3 分钟。

常用数据结构的时间复杂度

程序的复杂度分为时间复杂度和空间复杂度,通过字面上可以看出它们的含义,下面我们主要来看一个集合的时间复杂度,这些集合基本包含了.net里的所有了,呵呵!

Data Structure Add Find Delete GetByIndex

O(n)

O(n)

O(n)

O(1)

O(1)

O(n)

O(n)

O(n)

O(1)

O(n)

O(n)

O(1)

O(1)

-

O(1)

-

O(1)

-

O(1)

-

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>)

  • 当需要保存一组唯一的值,并且元素需要排序时。

鸣谢

本文原文由 发表自博客园,本人只是收藏之

本文章来自:http://www.cnblogs.com/gaochundong/p/3813252.html

相关参考资料:

你可能感兴趣的文章
【sublime】sublime Text 3 javaScript代码自动提示插件&安装步骤 &启动Debug模式
查看>>
CentOS-5安装配置PowerDNS服务器
查看>>
记载今天的一次经验,
查看>>
FormView 显示、更新、插入、删除数据库操作[ASP.NET源代码](一)
查看>>
IIS连接127.0.0.1要输入用户名密码的解决办法
查看>>
Linux 内核中container_of的理解
查看>>
GET和POST两种基本请求方法的区别
查看>>
Android NDK开发三:java和C\C++交互
查看>>
Azure 网站的新增功能:可配置的环境变量
查看>>
微软开放技术热烈祝贺开源社成立!
查看>>
Download all Apple open source OS X files at once
查看>>
Objective-C点语法
查看>>
iOS应用程序状态切换相关
查看>>
理解AngularJS生命周期:利用ng-repeat动态解析自定义directive
查看>>
Programming Ability Test学习 1029. 旧键盘(20)
查看>>
控制器
查看>>
一些小问题
查看>>
使用python实现往手机发短信(基于twilio)
查看>>
Ubuntu开启Samba服务器,实现文件共享
查看>>
unity编程心得
查看>>