学习算法笔记(5)
2023-09-14 09:10:05 时间
学习过分治方法来设计归并排序算法之后,发现它的效率是大大地提升了,但是我们怎么样知道它效率是提升的呢?又需要使用什么样的方法来计算它的时间呢?这些问题会一个一个困扰着大家。要解决这些问题,需要分析归并排序算法的时间占用,看看它的耗时与数量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时。
这里可以看到D(n)和C(n)都n的线性函数,可以把它进一步合并,那么就可以写成这样:
T(n) =c 当n <= 1时
相关文章
- stm32直流电机控制—PID算法篇
- 算法刷题笔记05:Tree
- 算法刷题笔记02:Linked List
- 【笔记】《游戏编程算法与技巧》7-12
- 大一的算法笔记
- 算法基础课 - 并查集笔记
- OpenSSL密码库算法笔记——第5.1.2章 椭圆曲线算法集
- OpenSSL密码库算法笔记——第5.1.1章 椭圆曲线点群的定义
- 缩点求强连通分量——Kosaraju算法 学习笔记
- 产品能力|算法学习笔记-贪心算法基础
- 数据结构与算法笔记
- C语言算法及常量变量相关知识【C语言学习笔记】
- 刷爆Leetcode!字节算法大佬进阶专属算法笔记:GitHub标星97k+
- 火了!北大学霸爆肝3个月的算法小抄完整笔记,GitHub疯狂转发
- 常见的js算法_javascript数据结构与算法
- 量子搜索算法例题详解_量子算法与编程入门
- 算法应对电商的各种满减活动
- day11 | 数据结构与算法 | 第三届字节跳动青训营笔记
- 《机器学习算法竞赛实战笔记1》:如何看待机器学习竞赛问题?
- 发现一位大佬的算法刷题笔记PDF
- 算法-数字在排序数组中出现的次数详解编程语言
- 插入排序算法,C语言插入排序算法详解