【算法设计与分析】08 序列求和的方法
本篇文章学习数列求和的一些方法。这些方法对后面学习算法的时间复杂度非常有帮助。
文章目录
- 1. 数列求和公式
- 1.1 二分搜索的时间复杂度求解
- 2 估计和式上届的放大法
- 3 估计和式渐近的界
- 4 总结
1. 数列求和公式
下面这几个数列求和公式都是高中学过的公式。
- 等差、等比数列和调和级数
下面给出一个求和的例子,使用了一些高中都会的变换的技巧:
学习上面的公式,主要是为了解决算法的时间复杂度,下面以二分搜索的时间复杂度为例,讲解如何利用上面的公式求解出,时间二分搜索的时间复杂度(关于时间复杂度的概念,可以参看以前的文章:【算法设计与分析】03 算法及其时间复杂度)。
1.1 二分搜索的时间复杂度求解
- 假设二分数组为T[n],要搜索的数为:x。如下图是一个简单数组的搜索过程。
上述的二分搜索最终并没有找到要搜索的元素的位置。所以二分搜索的数据的输入情况,可以分为两种,一种是想要搜索的数x在数组中,一种是想要搜索的x不在数组中,那么一共就有2n+1中情况发生。如下图:
- 左边是x在数组中,可以在任何一个位置出现,有n种情况。
- 右边是x不在数组中,那么x出现在数组的两边或者在数组中两个元素的中间,就有n+1种情况
- 所以一共有2n+1种输入情况。
注意:上述,假设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 估计和式上届的放大法
放大法在高中大家学的都很熟练应该。
- 放大法:
- 放大法的例子
3 估计和式渐近的界
以下方法用到了基本微积分的概念。
求上届
求下届
上面的上届和下届都是同一个级别的,所以:
4 总结
本文学习了序列求和的基本公式:
- 等差数列
- 等比数列
- 调和级数
对于无法计算的序列和,可以采用放大法求上届,用积分做和式渐近的界
这些基本的计算方法对计数循环过程的基本运算次数很有帮助。也就是算法的时间复杂度了。
【算法设计与分析】08 序列求和的方法相关推荐
- 计算机算法设计与分析 单峰序列
1.单峰序列 问题描述 给定含有n个不同整数的数组L=<a1,a2,-,an>,如果L中存在ai,使得a1<a2<-<ai-1ai+1>->an.则称L是单峰 ...
- 算法设计与分析:动态规划(3)-序列联配问题(以算代存)
文章目录 前言 高级动态规划 应用分治思想减少空间 计算得分 从后缀匹配到前缀匹配 伪代码 分治点计算改进 总结 本文参考UCAS卜东波老师算法设计与分析课程撰写 前言 本文内容承接上一次算法设计与分 ...
- 哈工大威海算法设计与分析_计算机算法设计与分析第一章 算法概述
晓强Deep Learning的读书分享会,先从这里开始,从大学开始.大家好,我是晓强,计算机科学与技术专业研究生在读.我会不定时的更新我的文章,内容可能包括深度学习入门知识,具体包括CV,NLP方向 ...
- 算法设计与分析:分治思想 - 入门
文章目录 分治思想 判断分治的条件 分治思想在排序问题的应用 求逆序对的个数 分治总结 本文参考UCAS卜东波老师的计算机算法设计与分析课程完成 分治思想 分治思想可以归纳为两点: 将一个复杂问题化简 ...
- 算法设计与分析(python版)-作业一
参考教材:算法设计与分析(Python版) 作者:王秋芬 1 . 容易 (4分)2 n=O(100n ^2) 错误 2 . 容易 (3分)10=θ(log10) 正确 3 . 容易 ( ...
- 【图的同构识别】算法设计与分析实验2
计算机科学与工程学院实验报告 课程名称 算法设计与分析 班级 实验内容 实验2:图的同构识别 指导教师 姓名 重剑DS 学号 实验日期 2022.05.19 一.问题描述,含输入.输出数据内容.格式 ...
- 算法设计与分析基础-笔记-上
算法设计与分析基础 绪论 什么是算法 一系列解决问题的明确指令,对于符合一定规范的输入,能够在有限的时间内获得要求的输出. 例子:最大公约数:俩个不全为0 的非负整数 m m m和 n n n的最大公 ...
- 【算法设计与分析】屈婉玲教授—课程笔记
网课地址与课件 B站:[北大公开课] 算法设计与分析 屈婉玲教授 (76p) 课件:来源于评论区小伙伴分享(百度云) 提取码:1111 笔记 课程知识框架 算法设计思想 设计思想:尽量选复杂度 ...
- 天津理工大学研究生学位课《算法设计与分析》期末大作业
2022- 2023学年度第一学期 研究生学位课< 算法设计与分析 > 期末大作业 2022级电子信息天理研究生 一.简答题 1.若,写出用Θ.Ω和О描述f(n) 的渐进表达.(7分) 答 ...
最新文章
- linux基础知识-链接列表
- C语言指针是什么?1分钟彻底理解C语言指针的概念
- select2 属性标签整理
- 没有绝对的技术,只有不停的创新
- 温故而知新 js 的错误处理机制
- beginnersbook 数据库教程
- Loading动画加载素材模板,UI设计师好帮手
- 使用vSAN RVC进一步了解vSAN环境
- C++编程问题--注意指针参数的传递
- FileStream:The process cannot access the file because it is being used by another process
- 传智php网课,传智自动刷网课视频工具
- PHP IE下载时提示”无法复制 无法读取源文件或磁盘”的解决办法
- Adobe Creative Cloud 2022 (macOS、Windows) TNT 合集
- ZTE 5G UPF 性能白皮书
- 计算机音乐数字乐谱青芒,弱水三千(戏腔付)
- The Last Non-zero Digit
- 使用 NetCat 工具实现远程文件传输
- 在线生成免费android ios图标
- 光速虚拟机手机谷歌服务器,光速虚拟机一款安卓上的模拟器,在安卓手机里再装一个安卓系统...
- alpinestars与丹尼斯_丹尼斯 VS A星,两虎相争骑士得利