Algorithm Design and Analysis

Slides:



Advertisements
Similar presentations
一、 一阶线性微分方程及其解法 二、 一阶线性微分方程的简单应用 三、 小结及作业 §6.2 一阶线性微分方程.
Advertisements

2.8 函数的微分 1 微分的定义 2 微分的几何意义 3 微分公式与微分运算法则 4 微分在近似计算中的应用.
第八章 第四节 机动 目录 上页 下页 返回 结束 一个方程所确定的隐函数 及其导数 隐函数的微分法.
全微分 教学目的:全微分的有关概念和意义 教学重点:全微分的计算和应用 教学难点:全微分应用于近似计算.
2.3 函数的微分. 四川财经职业学院 课前复习 高阶导数的定义和计算方法。 作业解析:
练一练: 在数轴上画出表示下列各数的点, 并指出这些点相互间的关系: -6 , 6 , -3 , 3 , -1.5, 1.5.
信号与系统 第三章 傅里叶变换 东北大学 2017/2/27.
一、算法的基本概念 二、数据结构 三、栈和队列 四、排序方法 五、二叉树
二叉树在树结构的应用中起着非常重要的作用,因为对二叉树的许多操作算法简单,而任何树都可以与二叉树 相互转换,这样就解决了树的
第五章 二次型. 第五章 二次型 知识点1---二次型及其矩阵表示 二次型的基本概念 1. 线性变换与合同矩阵 2.
第三章 函数逼近 — 最佳平方逼近.
§1 线性空间的定义与性质 ★线性空间的定义 ★线性空间的性质 ★线性空间的子空间 线性空间是线性代数的高等部分,是代数学
常用逻辑用语复习课 李娟.
小学生游戏.
第6章 树和二叉树 树型结构是一类非常重要的非线性结构。直观地,树型结构是以分支关系定义的层次结构。
第四节 对数留数与辐角原理 一、对数留数 二、辐角原理 三、路西定理 四、小结与思考.
例题 教学目的: 微积分基本公式 教学重点: 牛顿----莱布尼兹公式 教学难点: 变上限积分的性质与应用.
一、原函数与不定积分 二、不定积分的几何意义 三、基本积分公式及积分法则 四、牛顿—莱布尼兹公式 五、小结
第二节 微积分基本公式 1、问题的提出 2、积分上限函数及其导数 3、牛顿—莱布尼茨公式 4、小结.
第四章 函数的积分学 第六节 微积分的基本公式 一、变上限定积分 二、微积分的基本公式.
第四章 一元函数的积分 §4.1 不定积分的概念与性质 §4.2 换元积分法 §4.3 分部积分法 §4.4 有理函数的积分
第5章 定积分及其应用 基本要求 5.1 定积分的概念与性质 5.2 微积分基本公式 5.3 定积分的换元积分法与分部积分法
2-7、函数的微分 教学要求 教学要点.
树(三) 2012初赛知识点梳理.
第5章 §5.3 定积分的积分法 换元积分法 不定积分 分部积分法 换元积分法 定积分 分部积分法.
赵海燕 软件研究所 14 Apr 第5章 树与二叉树 之三 赵海燕 软件研究所 14 Apr
第二章 矩阵(matrix) 第8次课.
强连通分量 无向图 1、任意两顶点连通称该图为连通图 2、否则将其中的极大连通子图称为连通分量 A D C B E 有向图
计算机数学基础 主讲老师: 邓辉文.
§2 求导法则 2.1 求导数的四则运算法则 下面分三部分加以证明, 并同时给出相应的推论和例题 .
第11讲 树和二叉树(二).
第一章 函数 函数 — 研究对象—第一章 分析基础 极限 — 研究方法—第二章 连续 — 研究桥梁—第二章.
第六章 树与森林 树和森林的概念 二叉树 (Binary Tree) 二叉树的表示
动态规划(Dynamic Programming)
使用矩阵表示 最小生成树算法.
无向树和根树.
若2002年我国国民生产总值为 亿元,如果 ,那么经过多少年国民生产总值 每年平均增长 是2002年时的2倍? 解:设经过 年国民生产总值为2002年时的2倍, 根据题意有 , 即.
第4章 非线性规划 4.5 约束最优化方法 2019/4/6 山东大学 软件学院.
第一章 函数与极限.
数列.
第二节 极限 一、数列极限 定义:.
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
顺序表的删除.
线 性 代 数 厦门大学线性代数教学组 2019年4月24日6时8分 / 45.
5.2 常用统计分布 一、常见分布 二、概率分布的分位数 三、小结.
离散数学─归纳与递归 南京大学计算机科学与技术系
第十章 双线性型 Bilinear Form 厦门大学数学科学学院 网址: gdjpkc.xmu.edu.cn
第4章 Excel电子表格制作软件 4.4 函数(一).
正切函数的图象和性质 周期函数定义: 一般地,对于函数 (x),如果存在一个非零常数T,使得当x取定义域内的每一个值时,都有
§8.3 不变因子 一、行列式因子 二、不变因子.
§6.7 子空间的直和 一、直和的定义 二、直和的判定 三、多个子空间的直和.
第四章 一元函数的变化性态(III) 北京师范大学数学学院 授课教师:刘永平.
第5节 树 前两章学习的栈和队列属于线性结构。在这种结构中,数据元素的逻辑位置之间呈线性关系,每一个数据元素通常只有一个前件(除第一个元素外)和一个后件(除最后一个元素外)。在实际生活中,可以用线性结构描述数据元素之间逻辑关系的问题是很广泛的,但也有很多问题不能依靠线性结构来解决,例如家谱、行政组织机构等都是非线性的数据结构。其中树就是一种非线性的数据结构。
1.2 子集、补集、全集习题课.
1.设A和B是集合,证明:A=B当且仅当A∩B=A∪B
树和图 tree and graph 蔡亚星.
学习任务三 偏导数 结合一元函数的导数学习二元函数的偏导数是非常有用的. 要求了解二元函数的偏导数的定义, 掌握二元函数偏导数的计算.
2.2矩阵的代数运算.
第15讲 特征值与特征向量的性质 主要内容:特征值与特征向量的性质.
第二节 函数的极限 一、函数极限的定义 二、函数极限的性质 三、小结 思考题.
正弦、余弦函数的性质 华容一中 伍立华 2017年2月24日.
《离散结构》 二元运算性质的判断 西安工程大学计算机科学学院 王爱丽.
§2 方阵的特征值与特征向量.
主讲教师 欧阳丹彤 吉林大学计算机科学与技术学院
§4.5 最大公因式的矩阵求法( Ⅱ ).
本节内容 1. 平衡二叉树的定义 2.平衡化旋转 3.平衡二叉排序树的插入操作 昆山爱达人信息技术有限公司
最小生成树 最优二叉树.
§2 自由代数 定义19.7:设X是集合,G是一个T-代数,为X到G的函数,若对每个T-代数A和X到A的函数,都存在唯一的G到A的同态映射,使得=,则称G(更严格的说是(G,))是生成集X上的自由T-代数。X中的元素称为生成元。 A变, 变 变, 也变 对给定的 和A,是唯一的.
Cfc Zeilberger 算法 陈焕林 陈永川 付梅 臧经涛 2009年7月29日.
9.3多项式乘多项式.
Presentation transcript:

Algorithm Design and Analysis 计算机科学与技术专业课程 Algorithm Design and Analysis 算法设计与分析 宋传鸣 chmsong@lnnu.edu.cn 辽宁师范大学计算机与信息技术学院

渐近复杂性(Asymptotic Complexity) 定义:对于T(n),如果存在 ,使得当 时有 则称 是T(n)当 时的渐近性态, 也称算法的渐近复杂性 直观上,T(n)是 略去低阶项后所留下的主项 用法 当问题规模充分大时,只需考察算法再渐近性态下的复杂性 它是T(n)的一种简化,目的在于比较两个具有不同阶复杂性的算法的效率 渐近复杂性 渐近符号性质 常用函数 基本数据结构

渐近分析的记号 渐近上界记号O: 如果存在正常数c 和 使得当 时,有 ,则称函数f(n)当n充分大时有上界,且g(n)是它的一个上界,记为 非紧上界记号o:如果对于 ,都存在 使 得当 时,有 ,则称函数f(n)当n充 分大时的阶比g(n)低,记为 渐近复杂性 渐近符号性质 常用函数 基本数据结构

渐近分析的记号 非紧下界记号ω:如果对于 ,都存在 使 得当 时,有 ,则称函数f(n)当n充分 大时的阶比g(n)高,记为 四种记号含义的比较 O与o类似,主要区别在于:满足o的函数集合的势要大于满足O的函数集合的势 同理,Ω与ω类似 在评价算法的复杂性时,上界的阶越低,下界的阶越高,则评估越精确,结果越有价值 渐近复杂性 渐近符号性质 常用函数 基本数据结构

渐近分析的记号 紧渐近界记号θ:如果存在正常数c1,c2和 使 得当 时,有 ,则称函数f (n)当n充分大时与g(n)同阶,记为 定理: 当且仅当 并且 渐近复杂性 渐近符号性质 常用函数 基本数据结构

渐近分析记号的若干性质 传递性 并且 ,则 自反性 对称性 当且仅当 渐近复杂性 渐近符号性质 常用函数 基本数据结构

渐近分析记号的若干性质 转置对称性 渐近分析记号的算术运算 渐近分析的作用 当且仅当 如果 ,则 ,其中c为一个正常数 如果 ,则 ,其中c为一个正常数 渐近分析的作用 考察解决同一问题的不同算法的复杂性界限 渐近复杂性 渐近符号性质 常用函数 基本数据结构

渐近复杂性分析中的常用函数 取整函数 取整函数的性质 :不大于x的最大整数 :不小于x的最小整数 对于n≧0, 有 渐近复杂性 渐近符号性质 基本数据结构

渐近复杂性分析中的常用函数 多项式函数 指数函数 定义: 若对于某个常数k,有 ,则称其有多项式界 对于 , 且 ,有 ,则 渐近复杂性 对于 , 且 ,有 ,则 渐近复杂性 渐近符号性质 常用函数 基本数据结构

渐近复杂性分析中的常用函数 指数函数 渐近复杂性 渐近符号性质 常用函数 基本数据结构

渐近复杂性分析中的常用函数 对数函数 定义: 若对于某个常数k,有 ,则称其多项式对数有界(Polylogarithmically bounded) 对于 渐近复杂性 渐近符号性质 常用函数 基本数据结构

渐近复杂性分析中的常用函数 阶乘函数 定义: 斯特林(Stirling)近似公式 由此可知 渐近复杂性 渐近符号性质 常用函数 基本数据结构

不同渐近函数之间的关系 小规模数据 渐近复杂性 渐近符号性质 常用函数 基本数据结构

不同渐近函数之间的关系 中等规模数据 渐近复杂性 渐近符号性质 常用函数 基本数据结构

渐近复杂性分析中的常见公式 二项式系数 设n为正整数, 则有 令x=1,有 令x=-1,有 渐近复杂性 渐近符号性质 常用函数 基本数据结构

渐近复杂性分析中的常见公式 鸽巢原理 和式 如果把n个球分别放在m个盒子中,那么 存在一个盒子必定至少装 个球 存在一个盒子必定最多装 个球 存在一个盒子必定至少装 个球 存在一个盒子必定最多装 个球 和式 算术级数: 平方和: 几何级数: 渐近复杂性 渐近符号性质 常用函数 基本数据结构

渐近复杂性分析中的常见公式 和式 几何级数: 对几何级数两边求导,得到 当c=2时,有 当c=1/2时,有 渐近复杂性 渐近符号性质 常用函数 基本数据结构

渐近复杂性分析中的常见公式 求和的积分近似 如果f(x)是单调递减的连续函数,则 渐近复杂性 渐近符号性质 常用函数 基本数据结构

渐近复杂性分析中的常见公式 求和的积分近似 如果f(x)是单调递增的连续函数,则 示例:求和式 和调和级数 的上下界 渐近复杂性 示例:求和式 和调和级数 的上下界 渐近复杂性 渐近符号性质 常用函数 基本数据结构

渐近复杂性分析举例 求和 第4步的执行次数为 渐近复杂性 渐近符号性质 常用函数 基本数据结构

渐近复杂性分析举例 求和 第5步的执行次数为 渐近复杂性 渐近符号性质 常用函数 基本数据结构

渐近复杂性分析中的常用函数 摘自http://bbs.sciencenet.cn/home.php?mod=spac e&uid=324529&do=blog&id=386663 渐近复杂性 渐近符号性质 常用函数 基本数据结构

链表(List) 由有限的元素或结点序列组成,结点包含数据域和 到另一个结点的链域 单链表 循环链表 双向链表 循环双向链表 堆栈:只允许在一端进行插入和删除运算的链表 队列:只允许在一端进行插入运算,而在另一端进行删除运算 渐近复杂性 渐近符号性质 常用函数 基本数据结构

树(Tree) 树是n(n≥0)个结点的有限集T,T为空时称为空树, 否则它满足如下两个条件: 有且仅有一个特定的称为根(Root)的结点 其余的结点可分为m(m≥0)个互不相交的子集,其中每个子集本身又是一棵树,并称其为根的子树 渐近复杂性 渐近符号性质 常用函数 基本数据结构

树(Tree) 基本概念 结点的度:树中的一个结点拥有的子树个数称为该结点的度.一棵树的度是指该树中结点的最大度数 孩子和双亲:树中某个结点的子树之根称为该结点的孩子(Child)或儿子,相应地,该结点称为孩子的双亲(Parents)或父亲.同一个双亲的孩子称为兄弟 路径:若树中存在一个结点序列k1,k2,…,kj,使得ki是ki+1的双亲(1≤i<j),则称该结点序列是从kl到kj的一条路径(Path)或道路 路径的长度:路径所经过的边(即连接两个结点的线段)的数目,等于j-1 祖先和子孙:若树中结点k到ks存在一条路径,则称k是ks的祖先(Ancestor),ks是k的子孙(Descendant) 结点的层数:根的层数为1,其余结点的层数等于其双亲结点的层数加1 树的高度或深度:树中结点的最大层数 渐近复杂性 渐近符号性质 常用函数 基本数据结构

树(Tree) 二叉树(Binary Tree) 二叉树是n(n≥0)个结点的有限集,它或者是空集,或者由一个根结点及两棵互不相交的、分别称作这个根的左子树和右子树的二叉树组成 性质1:二叉树第i层上的结点数目最多为2i-1(i≥1) 性质2:深度为k的二叉树至多有2k-1个结点(k≥1) 性质3:在任意一棵二叉树中,若叶结点的个数为n0,度为2的结点数为n2,则n0=n2+1 性质4:在完全二叉树中,叶子数等于内部顶点数加1 性质5:具有n个结点的完全二叉树的深度为 性质6:任何有n个顶点的二叉树的高度最大是n,最小是 渐近复杂性 渐近符号性质 常用函数 基本数据结构

树(Tree) 二叉树的遍历 前序:访问结点的操作发生在遍历其左右子树之前 中序:访问结点的操作发生在遍历其左右子树之间 后序:访问结点的操作发生在遍历其左右子树之后 渐近复杂性 渐近符号性质 常用函数 基本数据结构

树(Tree) 二叉搜索树 所有存储在顶点v的左子树中的元素都小于存储在v中的元素,所有存储在顶点v的右子树中的元素都大于存储在v中的元素 用二叉搜索树表示一个集合并不是唯一的 渐近复杂性 渐近符号性质 常用函数 基本数据结构 4 6 8 9 1 3 6 3 8 1 4 9

图(Graph) 图G由一个顶点集合V和一个边集合E组成 有向图和无向图 图的表示:邻接矩阵或邻接表 渐近复杂性 渐近符号性质 常用函数 基本数据结构

图(Graph) 图的遍历 深度优先遍历:尽可能先对纵深方向进行搜索 广度优先遍历:尽可能先对横向进行搜索 渐近复杂性 渐近符号性质 常用函数 基本数据结构

堆(Heap) 一个堆是一个几乎完全的二叉树,它的每个结点都 满足:如果v和p(v)分别是结点和它的父结点,那么 存储在p(v)中的数据项的键值不小于v中的数据项 的键值 堆上的运算 上移和下移 从堆中删除最大键值的数据项 插入项x到堆中 从堆中删除第i项 将一个数组转换成堆 渐近复杂性 渐近符号性质 常用函数 基本数据结构

堆(Heap) 上移运算:将第10个位置的5变成25 渐近复杂性 渐近符号性质 常用函数 基本数据结构

堆(Heap) 下移运算:将第2个位置的17变成3 渐近复杂性 渐近符号性质 常用函数 基本数据结构

堆(Heap) 插入运算:先将x添加到堆的末尾,再将x上移直到 满足堆特性为止 删除运算:要从大小为n的堆H中删除元素H[i],先 用H[n-1]替换H[i],再根据H[i]的键值与存储在父 结点和子结点中元素键值的关系,对H[i]做上移或 下移运算,直到满足堆特性 删除最大值运算:返回根结点,并将其删除即可 渐近复杂性 渐近符号性质 常用函数 基本数据结构

堆(Heap) 建堆运算:从最后一个结点开始到根结点,逐个扫 描所有的结点,每一次将以当前结点为根结点的子 树转换成堆 初始化 第一步调整 渐近复杂性 渐近符号性质 常用函数 基本数据结构

堆(Heap) 建堆运算:从最后一个结点开始到根结点,逐个扫 描所有的结点,每一次将以当前结点为根结点的子 树转换成堆 第二步调整 第三步调整 渐近复杂性 渐近符号性质 常用函数 基本数据结构

堆(Heap) 建堆运算:从最后一个结点开始到根结点,逐个扫 描所有的结点,每一次将以当前结点为根结点的子 树转换成堆 第四步调整 渐近复杂性 渐近符号性质 常用函数 基本数据结构

课后思考 尝试证明树的几个性质 令T是非空二叉搜索树,设计从T中删除或插入元素x的 算法,并分析其时间复杂性 写一个算法将两个同样大小的堆合并为一个,分析算法 的计算复杂性 渐近复杂性 渐近符号性质 常用函数 基本数据结构