数据结构常见结构和算法时间复杂度

排序算法时间复杂度

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P8RSvqqV-1662105675064)(../图片/image-20220712003004889.png)]

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

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

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(1),总时间复杂度为O(n)
  • 尾插法O(n)
    • 附设了一个表尾结点的指针,插入时间为O(1),总时间复杂度为O(n)
  • 按序查找 O(n)
  • 按值查找 O(n)
  • 插入 O(1)
  • 删除 O(1)

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

3.二叉树

  • 二叉树的遍历

    • 时间复杂度O(n),空间复杂度O(n)
  • 二叉排序树

    • 插入/删除,时间复杂度O(n)

4.图(V是顶点个数,E是边的条数)

  • 邻接矩阵存储空间

    • 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|)
  • 11
    点赞
  • 117
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值