数据结构与算法邓俊辉——(一)

  • 计算:研究对象:规律,技巧;研究目标:高效地计算,低耗。

  • 计算的概念:借助某种工具,按照一定规则,以明确而机械的形式进行。

  • 算法: 输入——待处理的信息(问题)
    输出——经处理的信息
    正确性——的确可以解决指定的问题
    确定性——任意算法可以描述为一个由基本操作组成的序列
    可行性
    有穷性

  • 好算法:正确、健壮、可读、效率(速度尽可能快,存储空间尽可能少)

  • 评价计算模型总是选择最坏的情况。

  • 大O记号。
    O(1):不一定不含循环;
    O(logn):常底数无所谓,常数次幂无所谓。复杂度无限接近于常数;
    O(nc):从O(n)到O(n2)是编程习题主要覆盖的范围
    O(2n):这类算法的计算成本增长极快,通常认为是不可忍受的。
    在这里插入图片描述

  • 复杂度分析的主要方法:1.迭代:级数求和;2.递归:递归跟踪+递推方程;3.猜测+验证

  • 级数:1.算术级数:与末项平方同阶;2.幂方级数:比幂次高出一阶;3.几何级数:与末项同阶;4.收敛级数:O(1);4.调和级数:h(n)=1+1/2+1/3+…+1/n= O(logn);5.对数级数 log1+log2+…+logn=O(nlogn)
    在这里插入图片描述
    在这里插入图片描述

  • 循环与级数的关系:
    在这里插入图片描述

  • 冒泡排序:在经过k轮扫描交换后,最大的k个元素必然就位。
    定量方法计算
    通过不变性和单调性的分析,从而证明正确性是算法的一个基本技巧和方法。

  • 封底估算【定性方法】

  • 迭代与递归
    【减而治之】为求解一个大规模的问题,可以分为两个子问题:其一平凡,另一规模缩减,分别求解子问题。由子问题的解得到原问题的解。
    递归跟踪分析:检查每个递归实例累计所需时间(调用语句本身计入对应的子实例),其总和即为算法执行时间。
    【分而治之】:为求解一个大规模的问题,可以将其划分为若干(通常两个)子问题,规模大体相当。分别求解子问题,由子问题的解得到原问题的解。

  • 动态规划DFA

  • 递归:在函数定义中调用函数自身的方法

  • 迭代:for循环

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值