当前位置:   article > 正文

算法分析一:基础知识_o低阶函数具有传递性、自反性、对称性

o低阶函数具有传递性、自反性、对称性

1. 主要概念

1.1 算法概念

1.1.1 算法的理解

定义:在解决问题时,按照某种机械步骤一定可以得到问题结果的处理过程,通俗说,算法指解决问题的方法或过程。
三要素:算法由操作、控制结构、数据结构三要素组成。
算法分析的目的:1.为了对算法的某些特定输入,估算该算法的内存空间和运行时间。2.为了建立衡量算法优劣的标准,用以比较同一类问题的不同算法。

1.1.2 算法的组成

输入:需要处理的数据
输出:算法执行完毕得到的结果
算法步骤:把输入转化为输出的步骤

1.1.3 算法步骤的表示

自然语言:不精确但直观
伪代码:精确且通用,但不能运行
代码:精确,可以运行,但没有通用性

1.1.4 算法设计

基本要求:正确性和可读性。

1.1.5 算法五大特性

1、输入:算法具有0个或多个输入
2、输出:算法至少有1个或多个输出
3、有穷性:算法在有限的步骤之后会自动结束而不会无线循环,并且每一个步骤可以在可接受的时间内完成
4、确定性:算法中的每一步都有确定的含义,不会出现二义性
5、可行性:算法的每一步都是可行的,也就是说每一步都能够执行有限的次数完成

1.1.6 算法效率

一个算法的优劣可以用时间复杂度和空间复杂度来衡量。

1.2 算法的复杂性

定义:是指算法在运行过程中所需要的时间和空间资源的多少,所需资源越多,算法复杂性越高。

1.2.1 算法的时间复杂度

一般情况下,算法中的基本操作语句的重复执行次数是问题规模 n 的某个函数,用 T(n)表示,若有某个辅 助函数 f(n),使得当 n 趋近于无穷大时,T(n) / f(n) 的极限值为不等于零的常数,则称 f(n)是 T(n)的同数量级函数。 记作 T(n)=O( f(n) ),称O( f(n) ) 为算法的渐进时间复杂度,简称时间复杂度。

1.2.2 时间复杂度的分类
  • 最坏情况下的时间复杂度
  • 最好情况下的时间复杂度
  • 平均情况下的时间复杂度
1.2.3 计算时间复杂度

主定理
递归树
递归方程

1.4 函数的渐近的界

1.4.1 符号

大O
在这里插入图片描述

无

在这里插入图片描述
在这里插入图片描述

1.4.2 有关函数的渐近的界定理

定理一:
在这里插入图片描述
在这里插入图片描述
定理二:函数的阶之间的关系具有传递性
定理三:算法的时间复杂度是各步操作时间之和,在常数步的情况下取最高阶的函数即可
在这里插入图片描述

1.4.3 一些重要结果

对数函数的阶低于幂函数的阶,多项式函数的阶低于指数函数的阶.
在这里插入图片描述

1.5 几类重要函数

1.5.1 对数函数

在这里插入图片描述

1.5.2 指数函数与阶乘

在这里插入图片描述

1.5.3 取整函数

在这里插入图片描述

1.5.4 函数排序

在这里插入图片描述

1.6 序列求和

1.6.1 序列求和公式

在这里插入图片描述

1.6.2 二分检索算法

在这里插入图片描述

1.7 递推方程与算法分析

迭代求时间复杂度

1.7.1汉诺塔算法

在这里插入图片描述
解 T(n)=2^n-1(迭代算出
迭代法求递推方程
在这里插入图片描述

1.7.2 插入排序

在这里插入图片描述
迭代法求递推方程
在这里插入图片描述

1.7.3 二分归并问题

在这里插入图片描述
换元迭代
在这里插入图片描述

1.8 递归树

递归树是迭代计算的模型;递归树生成过程与迭代过程一致;递归树上的所有项恰好是迭代之后产生和式中的项;对递归树上的项求和就是迭代后方程的解
即递归树是迭代的图形表述,递归树的生成规则是用右部形成二层子树来不断替换左部。
此处应用:递归树求时间复杂度
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
每一层都是n,一共有k层 故时间复杂度是 n*k

1.9 主定理

1.9.1 主定理的应用背景

在这里插入图片描述

1.9.2 主定理内容

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/614375
推荐阅读
相关标签
  

闽ICP备14008679号