算法定义

2020-02-19  本文已影响0人  大写的空气

算法(algorithm)具有以下特性

有输入:必须有0个或多个输入

有输出:有一个或多个输出,输出的量是算法计算的结果

确定性:每一步都应确切地、无歧义地定义。

有穷性:执行有穷步后结束

能行性:每一条运算都必须是足够基本的。能通过计算机指令精确地执行,有限次计算就能完成

算法的性能标准

正确性(correnctness):能正确地执行预定的功能和性能要求

可使用性(usability):能够很方便的使用。也称用户友好性

可读性(readability):逻辑必须是清晰、简单和结构化的

效率(efficiency):执行时计算机资源的消耗,包括存储和运行时间的开销,前者叫算法的空间代价,后者叫时间代价

健壮性(robustness):调用状态进行自动检错、报错并通过与用户对话来纠错的功能。也叫容错性或例外处理

简单性(simplicity):所采用数据结构和方法的简单程度

算法复杂性度量

空间复杂度(space complexity):当问题的规模以某种单位从1增加到n时,解决这个问题的算法在执行时所占用的存储空间也以某种单位由1增加到S(n),则称此算法的空间复杂度为S(n)

时间复杂度(time complexity):当问题的规模以某种单位从1增加到n时,解决这个问题的算法在执行时所耗费的时间也以某种单位由1增加到T(n),则称此算法的时间复杂度为T(n)

程序步:在语法上或语义上有意义的一段指令序列,而且这段指令序列的执行时间与实例特性无关

c < log2n < n < nlog2n < n² < n³ < 2的n次方 < n!

上一篇下一篇

猜你喜欢

热点阅读