时间复杂度与空间复杂度

时间复杂度:

时间复杂度和程序执行的语句次数有关。程序执行的语句数越多,那么耗时越长,时间复杂度越高。

但是时间复杂度是一个对大规模数据的估计,所以只在乎最高次幂,不管系数和低次幂。

常见的时间复杂度如下表所示:

时间复杂度的推导:
能够节省时间的巧妙算法,其本质都是通过一个时间复杂度是O(1)的操作,将原来规模为N的问题变为规模为N/2的问题。所以能够推导出二分法的时间复杂度为:

T(n) = T(n/2) + O(1) = T(n/4) + O(1) = .....= T(1) + O(1) * logn

在分析算法时间复杂度的时候,先看这个算法的时间复杂度,然后去找采用这个算法之后,问题的规模有没有变化。

1.使用一个O(N)的算法,将N的规模缩小一半:这个算法的时间复杂度是O(N)。按照上述公式,最后推出的时间复杂度计算公式为:

T(1) + O(1)  + O(2) +O(4) + O(8) +...o(N/2) +O(N) 这些的和是O(2*N),即为O(N)。这个和二分的区别是,利用时间复杂度为O(N)的操作将数组分开的,而不是O(1)。

2. 利用O(1)的时间将N的问题拆为两个O(N/2)的问题:

时间复杂度为O(N.2)。因为这里虽然拆成N/2的问题,但是是2个N/2。所以最后还是N个问题。

空间复杂度:

主要是建立的数组或者HashMap所消耗的空间。常见算法的空间复杂度:

快排:最优:O(logn) 最坏:O(n)

二分: O(1)

最短路径(Dijkstra):O(V) V表示点集大小。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值