什么是算法及其复杂度

算法:是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指定表示一个或多个操作

算法的5个特性

  • 有穷性:一个算法必须总是(对任何合法的输入值)在执行有穷步之后结束,且每一步都在有穷时间内完成

    有穷时间指的是在你接受的时间范围内完成

  • 确定性:算法中每一条指令必须有确切的含义,让人不会产生二义性;并且,在任何条件下,算法只有唯一的一条执行路径,即对于相同的输入只能得到出相同的输出

  • 可行性:一个算法是能行的,即算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现

  • 输入:一个算法有零个或多个输入,这些输入取决于某个特定的对象的集合

  • 输出:一个算法有一个或多个输出,这些输出同输入有着某些特定关系的量


算法效率的度量

  • 事后统计的方法

  • 事前分析估算的方法(常用)

    • 时间复杂度(也称“渐近时间复杂度”)

      算法中基本操作重复执行的次数是问题规模n的某个函数f(n),算法的时间量度记做 T(n) = O(f(n)),它表示随问题的规模n的增大,算法执行时间的增长率和f(n)的增长率相同

    • 空间复杂度

      算法所需存储空间的量度,记做 S(n) = O(f(n)),其中n为问题的规模(大小)。

猜你喜欢

转载自blog.csdn.net/weixin_41640994/article/details/106840491
今日推荐