算法分析

什么是算法?
算法是为为求解一个问题需要遵循的,被清楚地指定的简单指令的集合 —《数据结构与算法分析》
算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。—百度百科

对于一个问题,一旦我们决定了适用于解决它的算法,那么最重要的一步是确定该算法需要消耗多要资源,最常见的资源是时间资源和空间资源。

如何估算算法所需的资源?让我们先从某些数学定义开始。

定义:如果存在正常数 c 和 n 使得当 N ≥ \geq n 时 T(N) ≤ \leq cf(N),则记为 T (N) = O( f(N) )。

定义:如果存在正常数 c 和 n 使得当 N ≥ \geq n 时 T(N) ≥ \geq cf(N),则记为 T (N) = Ω \Omega Ω (f(N)) 。

这些定义的目的是在函数之间建立相对的关系。给定两个函数,通常存在一些点,在这些点上一个函数的值小于另一个函数的值。但是类似这样的关系是没有意义的。从上面的两个定义也可以看出,我们关心的是当n无限增长是函数的表现,其实我们是在关系两个函数的增长率。第一个定义即T(N)的增长率小于f(N)的增长率。第二定义即T(N)的增长率大于f(N)的增长率。我们在比较两个算法的效率的时候,一般是考虑当数据的集合无限增大时,算法的表现,因为在数据集合小的时候,两个算法的效率差距不会特别大,即使有差距,也是处于可以被接受的程度。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值