数据结构和常见算法
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) |
|
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) |
目前还在学习中,希望会对大家有所帮助,觉得不错,就点赞支持一下。
另外,转载时请附带链接。谢谢!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话