学习算法笔记(5)

本文探讨了归并排序算法的时间复杂度,通过递归方程和树形展开分析得出其时间复杂度为nlgn,对比插入排序的n平方,证明归并排序在大规模数据下的高效性。同时提出了在数据量小时使用插入排序的优化策略,并讨论了如何确定两者结合的临界点。
摘要由CSDN通过智能技术生成

学习过分治方法来设计归并排序算法之后,发现它的效率是大大地提升了,但是我们怎么样知道它效率是提升的呢?又需要使用什么样的方法来计算它的时间呢?这些问题会一个一个困扰着大家。要解决这些问题,需要分析归并排序算法的时间占用,看看它的耗时与数量n之间的关系。

       当一个算法包含对其自身的递归调用时,往往可以使用递归方程或递归式来描述其运行时间,然后通过数学工具来对时间进行计算。针对归并排序,下面详细地展开地分析它的时间计算。假定归并排序解决一个问题的时间为T(n),如果这个问题分解之后,足够小,那么时间就为T(1)。由于存在递归,那么就需要另外两部分时间:分解和合并。分解时间为D(n),合并时间为C(n),因此就可以把递归过程中每一步的时间写成下面的公式:

T(n) = T(1)  当n <= 1时。

T(n) = aT(n) + D(n) + C(n) , 当n>1时。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

caimouse

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值