算法的分析思路

Crq
Crq
Crq
1161
文章
0
评论
2024年10月19日11:18:41
评论
27 825字阅读2分45秒
分析框架

1、以算法输入规模n作为参数进行分析算法效率

2、时间复杂度:找出基本操作O(1),再计算它的运行次数(忽略乘法常量,仅关注增长次数)

3、增长次数:log2n<n<nlog2n<n2<n3<2n<n! (注意指数级操作的增长次数只能解决小规模问题)

4、最差、平均和最佳效率均是指输入规模为n时候的效率(平均效率可以引用已知的推到结果)

主要概括分析框架:

1、算法的时间效率和空间效率都用输入规模的函数进行度量。

2、用算法的基本操作的执行次数来度量时间效率,用算法消耗的额外单位的数量来度量空间单位

3、在输入规模相同的情况下,有写算法的效率会有显著的差异,对于这类算法需要分析最差、平均和最佳效率

4、框架主要关心:输入规模趋向于无限大的情况下它的效率问题

渐近符号和基本效率类型

1、O(g(n))是增长次数 < = c*g(n)的函数集合,上阶

2、Ω(g(n))是增长次数 >= c*g(n)的函数集合,下阶

3、θ(g(n))是增长次数 = c*g(n)的函数集合,同阶

可以利用极限进行比较增长次数(洛必达法则)
算法整体效率是由具有较大增长次数的部分所决定的。

非递归问题的数学分析的通用方案

1、决定哪个参数表示输入规模的度量标准

2、找出算法的基本操作

3、检查基本操作的执行次数是否只依赖于输入规模,如果它还依赖于一些其他的特性(例如:元素在数组中的位置等)则分析最差、平均和最佳效率

4、建立一个算法基本操作执行次数的求和表达式(有可能是递推表达式)

5、利用求和运算的标准运算或者法则来建立一个操作次数的闭合公式,或者至少确定它的增长次数

递归问题的数学分析的通用方案

1、决定哪个参数表示输入规模的度量标准

2、找出算法的基本操作

3、检查基本操作的执行次数是否只依赖于输入规模,如果它还依赖于一些其他的特性(例如:元素在数组中的位置等)则分析最差、平均和最佳效率

4、对于算法基本操作执行次数,建立一个递推关系以及相应的初始条件。

5、解这个递推式,或者至少确定它的增长次数。

weinxin
我的微信
这是我的微信扫一扫
Crq
  • 本文由 发表于 2024年10月19日11:18:41
  • 转载请注明:https://www.cncrq.com/11260.html
DevOps监控微服务的五原则 Linux教程

DevOps监控微服务的五原则

监控是微服务控制系统的关键部分,你的软件越复杂,那么你就越难了解其性能及问题排障。鉴于软件交付发生的巨大改变,监控系统同样需要进行彻底的改造,以便在微服务环境下表现更好。
Linux 中重置数据库的 root 密码的技巧 Linux教程

Linux 中重置数据库的 root 密码的技巧

其中一项是设置数据库 root 帐户的密码 - 你必须保持私密,并仅在绝对需要时使用。如果你忘记了密码或需要重置密码(例如,当数据库管理员换人或被裁员!),这篇文章会派上用场。
总说Linux,到底什么是Linux? Linux教程

总说Linux,到底什么是Linux?

Linux是最知名和最常用的开源操作系统。作为一个操作系统,Linux是一个软件,位于计算机上的所有其他软件的下面,从这些程序接收请求并将这些请求转发到计算机硬件。
Ubuntu12.04嵌入式交叉编译环境搭建 Linux教程

Ubuntu12.04嵌入式交叉编译环境搭建

在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译,这个编译过程就叫交叉编译。简单地说,就是在一个平台上生成另一个平台上的可执行代...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: