常见算法|数据结构复杂度一览

数据结构

在这里插入图片描述

排序算法

在这里插入图片描述
快速排序最坏的情况啥时候出现?

这个答案还得看枢轴(pivot)的选择策略。在快速排序的早期版本中呢,最左面或者是最右面的那个元素被选为枢轴,那最坏的情况就会在下面的情况下发生啦:

1)数组已经是正序(same order)排过序的。
2)数组已经是倒序排过序的。
3)所有的元素都相同(1、2的特殊情况)

因为这些案例在用例中十分常见,所以这个问题可以通过要么选择一个随机的枢轴,或者选择一个分区中间的下标作为枢轴,或者(特别是对于相比更长的分区)选择分区的第一个、中间、最后一个元素的中值作为枢轴。有了这些修改,那快排的最差的情况就不那么容易出现了,但是如果输入的数组最大(或者最小元素)被选为枢轴,那最坏的情况就又来了。

图论

算法数据范围时间复杂度
最短路径-dijstra-小根堆Graph with V vertices and E edges O ( V + E ) log ⁡ 2 E O(V+E)\log_2 E O(V+E)log2E
最短路径-dijstra-无序数组Graph with V vertices and E edges O ( V 2 ) O(V^2) O(V2)
最短路径-bellman-fordGraph with V vertices and E edges O ( V E ) ) O(VE)) O(VE))
最短路径-spfaGraph with V vertices and E edges O ( V E ) ) O(VE)) O(VE))
最小生成树-PRIMEGraph with V vertices and E edges O ( V 2 ) O(V^2) O(V2)
最小生成树-KruskalGraph with V vertices and E edges O ( E log ⁡ 2 E ) O(E\log_2 E) O(Elog2E)

参考文章:
https://blog.csdn.net/wumingqian_137229/article/details/53212319
https://blog.csdn.net/l975764577/article/details/39399077

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值