首页 > 编程语言 > 详细

什么是算法

时间:2020-05-06 19:30:36      阅读:64      评论:0      收藏:0      [点我收藏+]

一、算法定义(Algorithm)

1、一个有限的指令集

2、接受一些输入(有些情况不需要输入)

3、产生输出

4、一定在有限步骤之后终止

5、每一条指令必须:

  ①有充分明确的目标,不可以有歧义

  ②计算机能处理的范围之内

  ③描述不应依赖与任何一种计算机语言及其具体的实现手段

二、一个好的算法

1、空间复杂度S(n)——执行时占用储存单元的长度

2、时间复杂度T(n)——执行时耗费时间的长度

在分析一般算法效率时,长关注以下两种复杂度

  ·最坏情况复杂度Tworst(n)

  ·平均复杂度Tavg(n)

而平均一般难以求得,故常分析最坏复杂度

复杂度的渐进表示法

  ·Tn = O(f(n))表示存在常数C >0,n?>0使得当n≥n?时有T(n) ≤ C·f(n).

  ·Tn = Ω(f(n))表示存在常数C >0,n?>0使得当n≥n?时有T(n) ≥ C·f(n).

  ·Tn = Θ(f(n))表示同时有Tn = O(f(n))Tn = Ω(f(n)).

复杂度分析

·若两端算法分别有复杂度T?n = O(f?(n))和T?n = O(f?(n)),则

  T?n + T?n  = max( O(f?(n))O(f?(n) )

  T?n * T?n  = O( f?(n) * f?(n) )

·若T(n)是关于n的k阶多项式,那么T(n) = Θ(n^k)

·for循环的时间复杂度为循环次数n乘以循环体复杂度

·if-else取决于if的条件判断和两个分支部分,复杂度取三者中最大

 

什么是算法

原文:https://www.cnblogs.com/yuanxzzz/p/12837553.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!