算法基本概念(Note2)

算法

1.1 算法效率的度量

正确性、可读性、健壮性、效率与存储量

1.1.1效率与存储量

效率与存储量:效率是指算法执行时间,存储量需求是指算法在执行过程中所需最大存储空间。

  • 语句频度, 该条语句可能重复执行的次数。

  • T(n), 所有语句的频度之和,其中n为问题的规模。

    读出下图语句频度和T(n)

    在这里插入图片描述

    sum=0; 初始化一次频度为1;

    for循环执行n次; 频度为n;

    所以,T(n) = 1+n;

  • 时间复杂度
    算法中基本操作重复执行的次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),使得当n趋近于无穷大时,T(n)/f (n)的极限值为不等于零的常数,则称f(n)是T(n)的同数量级函数。记作T(n)=O(f(n)),称O(f(n)) 为算法的渐进时间复杂度,简称时间复杂度。

    时间复杂度分为,最坏时间复杂度,最好时间复杂度,平均复杂度。以最坏时间复杂度来衡量算法。

    T(n) = O(f(n)), 其中O表示T(n)与f(n)在n—>正无穷时为同阶无穷大。

    根据同阶无穷大的知识,
    得到 T(n)/f(n)极限值不等于且为常数;
    n+1/x; n/x+1/x===>x = n;
    得到f(n)=n; 所以,n+1/n= n/n+1/n=1+1/n; n–>正无穷; 结果为1符合要求;
    所以时间复杂度为O(n);

  • 基本运算频度
    加法规则:T(n)=T1(n)+T2(n)=O(f(n))+O(g(n))=O(max(f(n),g(n)))
    max(x,y) 值,挑出xy最大的一个。
    通常采用基本运算频度来分析算法时间复杂度。
    读出下图语句频度,基本运算频度,T(n),O(f(n))
    在这里插入图片描述

    第一层, sum=0; 频度为1; O(n) = 1

    第二次,for循环; 频度为n; O(n) = n;

    第三层,嵌套for循环; 频度为n^;O(n) = n^;

    整体就是:T(n) = 1+n+n^====> O(n)=n^; n为问题规模;

    基本运算频度就是最内层的语句频度n^;整体的时间复杂度就根据这个来计算。

  • 空间复杂度
    此处省略一万字。。。。。

1.2 算法的特性

有穷性、确定性、可行性、输入、输出。	
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值