常用数据结构和算法操作效率的对比总结
前面介绍了经典的数据结构和算法,这一节我们对这些数据结构和算法做一个总结,具体细节,请参见各个章节的详细介绍,这里我们用表格来呈现它们的效率。
1. 数据结构部分
数据结构中常用的操作的效率表
通用数据结构 |
查找 |
插入 |
删除 |
遍历 |
数组 |
O(N) |
O(N) |
O(N) |
— |
有序数组 |
O(logN) |
O(N) |
O(N) |
O(N) |
链表 |
O(N) |
O(1) |
O(N) |
— |
有序链表 |
O(N) |
O(N) |
O(N) |
O(N) |
二叉树 |
O(logN) |
O(logN) |
O(logN) |
O(N) |
二叉树(最坏) |
O(N) |
O(N) |
O(N) |
O(N) |
红黑树 |
O(logN) |
O(logN) |
O(logN) |
O(N) |
2-3-4树 |
O(logN) |
O(logN) |
O(logN) |
O(N) |
哈希表 |
O(1) |
O(1) |
O(1) |
— |
专用数据结构 |
||||
栈 |
— |
O(1) |
O(1) |
— |
队列 |
— |
O(1) |
O(1) |
— |
优先级队列 |
— |
O(N) |
O(1) |
— |
优先级队列(堆) |
— |
O(logN) |
O(logN) |
2. 排序算法
常见的排序算法比较表
排序 |
平均情况 |
最好情况 |
最坏情况 |
稳定与否 |
空间复杂度 |
冒泡排序 |
O(N2) |
O(N) |
O(N2) |
稳定 |
1 |
选择排序 |
O(N2) |
O(N2) |
O(N2) |
不稳定 |
1 |
插入排序 |
O(N2) |
O(N) |
O(N2) |
稳定 |
1 |
希尔排序 |
O(NlogN) |
(依赖于增量序列) |
不稳定 |
1 |
|
快速排序 |
O(NlogN) |
O(NlogN) |
O(N2) |
不稳定 |
O(logN) |
归并排序 |
O(NlogN) |
O(NlogN) |
O(NlogN) |
稳定 |
O(N) |
二叉树排序 |
O(NlogN) |
O(NlogN) |
O(N2) |
稳定 |
O(N) |
堆排序 |
O(NlogN) |
O(NlogN) |
O(NlogN) |
不稳定 |
1 |
拓扑排序 |
O(N+E) |
— |
— |
— |
O(N) |
以上是对经典数据结构和算法部分的一个总结,如有错误之处,欢迎留言指正~
欢迎大家关注我的公众号:“武哥聊编程”,一个有温度的公众号~
关注回复:资源,可以领取海量优质视频资料
_____________________________________________________________________________________________________________________________________________________
-----乐于分享,共同进步!
-----更多文章请看:http://blog.csdn.net/eson_15
常用数据结构和算法操作效率的对比总结相关推荐
- iOS标准库中常用数据结构和算法之内存池
上一篇:iOS标准库中常用数据结构和算法之位串 ⛲️内存池 内存池提供了内存的复用和持久的存储功能.设想一个场景,当你分配了一块大内存并且填写了内容,但是你又不是经常去访问这块内存.这样的内存利用率将 ...
- iOS标准库中常用数据结构和算法之二叉排序树
上一篇:iOS标准库中常用数据结构和算法之排序 ?二叉排序树 功能:二叉排序树的标准实现是一颗平衡二叉树.二叉排序树主要用来解决高效插入和高效检索以及进行排序的问题.系统分别提供了二叉排序树节点的查找 ...
- 面试常考的常用数据结构与算法
面试常考的常用数据结构与算法 数据结构与算法,这个部分的内容其实是十分的庞大,要想都覆盖到不太容易.在校学习阶段我们可能需要对每种结构,每种算法都学习,但是找工作笔试或者面试的时候,要在很短的时间内考 ...
- 常用数据结构和算法总结
算法知识总结 本部分主要是笔者在学习算法知识和一些相关面试题所做的笔记,如果出现错误,希望大家指出! 目录 常用算法和数据结构总结 排序 冒泡排序 选择排序 插入排序 希尔排序 归并排序 快速排序 堆 ...
- keilcjson内存分配失败_iOS标准库中常用数据结构和算法之内存池
黑客技术点击右侧关注,了解黑客的世界! Java开发进阶点击右侧关注,掌握进阶之路! Linux编程点击右侧关注,免费入门到精通! 作者丨欧阳大哥2013https://www.jianshu.com ...
- 数据结构与算法 -- 时间复杂度
数据结构与算法看完了,回过头来在看时间复杂度,对它们的效率做个比较吧. 一.时间复杂度介绍 1.时间复杂度定义 参看:数据结构-算法-时间复杂度计算 在进行算法分析,语句总得执行次数 T(n) 是关于 ...
- 【转】数据结构与算法(上)
数据结构是以某种形式将数据组织在一起的集合,它不仅存储数据,还支持访问和处理数据的操作.算法是为求解一个问题需要遵循的.被清楚指定的简单指令的集合.下面是自己整理的常用数据结构与算法相关内容,如有错误 ...
- 深入理解数据结构和算法
hi,大家好,我是阿荣,今天分享一些对数据结构和算法精华总结,希望对大家的面试或者工作有一定的帮助: 看完本文可以学到什么 知道哪些数据结构和算法在实际工作中最常用,最重要 理解一些设计上注意事项(经 ...
- python中文教程github_GitHub - Virile-Tao/python_data_structures_and_algorithms: Python 中文数据结构和算法教程...
Python 算法与数据结构视频教程 课程简介 数据结构和算法是每个程序员需要掌握的基础知识之一,也是面试中跨不过的槛.目前关于 Python 算法和数据结构的系统中文资料比较欠缺, 笔者尝试录制视频 ...
最新文章
- 欧盟如何运用AI之力推动社会创新
- MATLAB安装相机驱动
- mysql数据库主从同步配置教程--数据库同步
- 笑跪!博士写论文解释科学擀面,学霸们每天都在想些啥…
- 怎么修改腾讯视频账户和密码
- Makefile.am和makefile.in生成Makefile
- 关于mysql出现大量locked进程
- VS2008引用webservice的奇怪BUG解决方案
- 关于matlab的图像显示方法
- Python 读取加密后的xlsl
- 摩拜显示服务器忙,摩拜崩了?用户扫了5辆都失败 摩拜称APP出现短时故障
- gossiping路由协议仿真
- Unity中获取一个物体下所有的子物体的方法
- 关于机器指令和微指令
- 丢失的拜占庭将军问题之谜
- Tuxera NTFS for Mac2020注册机
- AE C# 图片标注背景透明
- .Net Core 源码解析
- UE4 RTS 框选功能实现
- 多代理强化学习MARL(MADDPG,Minimax-Q,Nash Q-Learning)
热门文章
- vb.net生成随机数,并且统计生成的个数
- 简单理解XHR、Ajax、Axios、Promise
- 最新Eclipse版本2020,最新版本JDK14的下载和使用(超详细)
- Linux-centos
- wince 访问共享文件_WINCE 访问PC共享文件夹
- 1491_福特8D分析案例学习
- 关于Epidata软件中 .QES文件出现‘乱码伴随编号前面多个n’问题的解决办法
- postgre info
- 我的专业我做主计算机演讲稿,我的未来我做主演讲稿
- php公众号模板消息群发,微信公众平台|模板消息群发功能