数据结构基本操作的复杂度汇总

1.顺序表

  • 插入操作时间复杂度

最好O(1),最坏O(n),平均O(n)

移动结点的平均次数n/2

  • 删除操作时间复杂度

最好O(1),最坏O(n),平均O(n)

移动结点的平均次数(n-1)/2

  • 按值查找时间复杂度

最好O(1),最坏O(n),平均O(n)

移动结点的平均次数(n+1)/2

2.单链表

  • 头插法O(n)
  • 尾插法O(n)
  • 按序查找O(n)
  • 按值查找O(n)
  • 插入
  • 删除

其中插入和删除操作,指定结点O(1),需要从头查找则花费主要用于查找O(n)

3.二叉树

  • 二叉树的遍历

时间复杂度O(n),空间复杂度O(n)

  • 二叉排序树

插入/删除O(n)

4.图

  • 邻接矩阵存储空间

O(n^2)

  • 邻接表存储空间

无向图O(|V|+2|E|),有向图O(|V|+|E|)

  • 十字链表和邻接多重表存储空间

O(|V|+|E|)

  • 广度优先搜索

时间复杂度:邻接表O(|V|+|E|),邻接矩阵O(|V|^2)

空间复杂度:O(n)

  • 深度优先搜索

时间复杂度:邻接表O(|V|+|E|),邻接矩阵O(|V|^2)

空间复杂度:O(n)

  • 求最小生成树时间复杂度

Prim算法:O(|V|^2)

Kruskal算法:O(|E|log|E|)

  • 求最短路径时间复杂度

Dijkstra算法:O(|V|^2)

Floyd算法:O(|V|^3)

  • 拓扑排序时间复杂度

O(|V|+|E|)

5.内部排序

 

  • 5
    点赞
  • 127
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值