【算法设计与分析】08 序列求和的方法 | 您所在的位置:网站首页 › 等差数列求和的例子 › 【算法设计与分析】08 序列求和的方法 |
本篇文章学习数列求和的一些方法。这些方法对后面学习算法的时间复杂度非常有帮助。 文章目录 1. 数列求和公式1.1 二分搜索的时间复杂度求解 2 估计和式上届的放大法3 估计和式渐近的界4 总结 1. 数列求和公式下面这几个数列求和公式都是高中学过的公式。 等差、等比数列和调和级数下面给出一个求和的例子,使用了一些高中都会的变换的技巧: 学习上面的公式,主要是为了解决算法的时间复杂度,下面以二分搜索的时间复杂度为例,讲解如何利用上面的公式求解出,时间二分搜索的时间复杂度(关于时间复杂度的概念,可以参看以前的文章:【算法设计与分析】03 算法及其时间复杂度)。 1.1 二分搜索的时间复杂度求解 假设二分数组为T[n],要搜索的数为:x。如下图是一个简单数组的搜索过程。
![]() 注意:上述,假设n=2k-1,只是为了方便后面的计算。 现在已经知道了总的输入,还需要知道总的输入对应的比较的次数,才能计算出时间复杂度。 由分析可以看出,比较t次的输入的个数为: 所以: 对于t= 1,2…k-1,比较t次的输入有 :2t-1 个 (这个对应的是x在数组中的情况)对于x不在数组中的情况,需要比较的次数是k,那么比较k次的输入就是:2k-1+n+1个。(式子中的n+1是对应的不在数组中非空隙的个数,2k-1 对应的是x在数组中的情况,因为就算要找的数不在数组中,也要将数组比较完全一遍才能够知道)那么总次数就等于:对每个输入乘以这个输入对应的次数并求和 假设n=2k-1 ,各种输入的概率相等,则二分搜索平均时间复杂度为A(n): 上述的计算过程用到了一开始学习的几个公式以及变换技巧,自己慢慢掌握。 上述的计算结果大家都不陌生了,正式二分搜索的平均时间复杂度:logn 2 估计和式上届的放大法放大法在高中大家学的都很熟练应该。 放大法:以下方法用到了基本微积分的概念。 求上届 求下届 上面的上届和下届都是同一个级别的,所以: 本文学习了序列求和的基本公式: 等差数列等比数列调和级数对于无法计算的序列和,可以采用放大法求上届,用积分做和式渐近的界 这些基本的计算方法对计数循环过程的基本运算次数很有帮助。也就是算法的时间复杂度了。 |
CopyRight 2018-2019 实验室设备网 版权所有 |