算法的一些概念

概念 解释
算法

为了解决某类问题的有限长的操作序列

算法的五个

重要特性

有穷性、确定性、可行性、输入、输出

有穷性

算法必须在执行有穷步后结束,而且每一步都必须在在有穷时间内完成

确定性

对于每种情况下所应执行的操作,在算法中都有确切的规定,不会产生二义性

可行性

算法中的所有操作都可以通过已经实现的基本操作运算执行有限次来实现

输入

一个算法可以有零个、一个或多个输入

输出

一个算法有一个或多个输出,没有输出的算法是无意义的。

评价算法优劣

的基本标准

正确性、可读性、健壮性、高效性

正确性

合理的数据输入下,能够在有限运行时间内得到正确结果

可读性

便于人们理解和交流,其次考虑机器可执行性

健壮性

对于非法数据,能够适当做出正确反应或相应处理,而不是产生莫名其妙的输出结果

高效性

高效性包括时间和空间两个方面,时间高效指算法设计合理,执行效率高,空间高效性指算法占用存储容量合理。

问题规模

算法求解问题输入量的多少

语句频度

一条语句的重复执行次数

计算算法开销常用的方法

事后统计法和事前分析估算法

事后统计法

指将算法实现,测算其时间和空间开销,缺陷是:1、必须实现算法2、计算结果受软硬件等环境因素影响

事前分析估算法

计算算法的渐进复杂度来衡量算法的效率

事前分析估算法的算法执行时间

算法所有语句执行时间的总和

语句执行时间

该语句执行一次的时间与语句重复执行次数(语句频度)之积,常使用语句频度来代替

基本语句

一个算法中执行次数与算法执行时间成正比的语句

 

算法的时间复杂度

算法的基本语句的执行次数在渐进意义下的阶,使用"O"来表示数量级

"O"的定义

若存在正整数n和n0,当n>=n0时,满足0<=T(n)<=Cf(n),则称T(n)=O(f(n)).即T(n)和f(n)具有相同的增长趋势,"O"表示T(n)的增长至多趋于f(n)的增长

最好时间复杂度

算法在最好情况下的时间复杂度

最坏时间复杂度

算法在最坏情况下的时间复杂度

平均时间复杂度

算法在所有可能情况,输入数据以等概率出现时,算法计算量的加权平均值,往往难以计算

算法的时间复杂度

常使用最坏复杂度

算法的空间复杂度

算法计算时所需的辅助空间的规模
posted @ 2020-07-10 10:31  DNoSay  阅读(239)  评论(0编辑  收藏  举报