算法学习笔记(一)-算法基础

算法分析:

        为对一个算法的代价及效率等进行分析,必须具有一个要使用的实现技术的模型,包括描述所用资源及其代价的模型。简单的说,就是必须要有相应统一的准则或模型来进行分析,才能有效比较出算法好坏。

        目前通常假定一种通用的单处理器计算模型-随机访问机(RAM)作为评价环境。

        RAM以真实计算机为参照,真实计算机中的常见指令:算术指令(如加减乘除,取余,向下取整等),数据移动指令(装入,储存,复制)和控制指令(条件和无条件转移,子程序调用和返回)均包含于其中,所需时间为常量。

        真实计算机包含上述未列出的指令代表RAM模型中的灰色区域。例如指数运算,一般情况下非常数时间指令,但m*2^k,等价于将一个整数m各位向左移K位,所以在k不大于计算机位数的情况下,该指令为常数时间指令。所以尽量避免RAM模型的中灰色区域。

       还有很对包含内存层次的模型,其复杂得多,可能难以使用,暂不考虑。

输入规模:

       其依赖于研究的问题。对很多问题,如排序和离散傅里叶变换,其量度一般为输入中的项数,而其他,如两整数相乘,其最佳量度即为二进制记号所表示的输入所需的总位数。

分析量度:

      时间复杂度:输入规模为n,执行时间最长者为T(n),一般以渐进分析度量:(1)T(n)<=c*f(n),记为T(n)=O(f(n));(2)T(n)>=c*f(n),记为T(n)=Ω(f(n));(3)c1*f(n)<=T(n)<=c2*f(n),记为T(n)=Θ(f(n))。一般用第一种符号分析。

     空间复杂度分析大致如上。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值