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

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

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

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

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

  • 大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循环

数据结构与算法邓俊辉——(一)相关推荐

  1. 数据结构与算法邓俊辉——(二)

    向量 抽象数据类型:数据模型+定义在该模型上的一组操作(vector.list) 数据结构:基于某种特定语言,实现ADT的一整套算法 向量(vector):是数组的抽象与泛化.由一组元素按线性次序封装 ...

  2. 数据结构与算法邓俊辉——(三)

    列表 从向量到列表,是从静态到动态. 列表的基本组成单位叫做节点node.各节点通过指针或引用彼此联接,在逻辑上构成一个线性序列.前驱.后继.首节点.末节点. 列表改用循位置访问的方式.利用节点的相互 ...

  3. 408数据结构(王道版+邓俊辉版)

    第一章  绪论 上 第一章 绪论 下 第二章 向量 上 第二章 向量 下 第三章 列表 第四章 栈与队列 第五章 二叉树 第六章 图 第七章 搜索树 第八章 高级搜索树(上) 第八章 高级搜索树(下) ...

  4. 邓俊辉数据结构学习心得系列——如何正确衡量一个算法的好坏

    数据结构这门课主要关注如何设计合理的数据结构和算法,来简化时间复杂度和空间复杂度. 想要科学的解决这样一个优化的问题,最核心的思想也是最基础的,就是要量化问题.这也是将数学运用在实际问题中的一个基石. ...

  5. 算法与数据结构(邓俊辉)第一章

    算法与数据结构(邓俊辉)第一章 斐波那契数列 斐波那契数列几种方法快慢的对比 斐波那契数列 斐波那契数列几种方法快慢的对比 //头文件 #pragma once class Fib { //Fibon ...

  6. 邓俊辉数据结构学习心得系列——数据结构中所研究的算法

    写在前面的话: 本文只是个人学习邓俊辉老师C++数据结构的整理,包含了很多个人的见解(从内容到材料的组织形式).所整理的内容不保证逻辑性和完整性,仅供参考. 算法的基本性质: 有正确的输入 有正确的输 ...

  7. 邓俊辉 《数据结构》笔记1 绪论

    邓俊辉 <数据结构>笔记1 绪论 CSDN转图床总是崩,如果全写完再上传一次要调好多,感觉很麻烦,所以写一点更新一点,会持续更新 提前发出来还有个好处就是push自己更新不会咕咕咕,哈哈 ...

  8. 清华大学邓俊辉-数据结构MOOC笔记-树的概念及逻辑表示

    清华大学邓俊辉-数据结构MOOC笔记-树的概念及逻辑表示 有关概念: 与图论略有不同,数据结构中的树:1.需要为每一颗树指定一个特殊的顶点,作为"根"(root),对应rooted ...

  9. 数据结构 笔记--向量 C++ 语言版 邓俊辉老师

    邓俊辉老师的书. 1 有数组为什么还需要向量? 几乎所有程序设计语言中都会有数组,程序设计语言的开发者将数组作为一种内置的数据类型. 数组在刚开始初始化的时候就已经固定了长度,也可以依照下标查找,但还 ...

最新文章

  1. HTML5 文件域+FileReader 读取文件并上传到服务器(三)
  2. jvm系列(十):如何优化Java GC「译」
  3. iphone同步助手_教你如何用爱思助手给你的苹果手机设置自己喜欢的铃声
  4. JAVA方法调用中的解析与分派
  5. java itext 导出pdf文件_【Java,PDF】使用Itext实现PDF文件生成
  6. 解决redis启动时的警告
  7. Linux网络编程 之 TCP编程(七)
  8. LeetCode 1428. 至少有一个 1 的最左端列(二分查找)
  9. html5中control,HTML5.(control-shift)
  10. 粒子群算法的惩罚函数的c语言实现,粒子群算法结合惩罚函数用于桥式起重机主梁优化.pdf...
  11. SQL Server无法安装问题
  12. jdk7下载、安装与测试
  13. python工程师工资多少-Python工程师的薪资到底有多高
  14. WinKawaks详尽使用说明
  15. linux下装go环境
  16. 转载招聘信息及求职建议
  17. html字体如何运用在ps上,PS新手怎么运用好工作中文本工具
  18. linux对外开放端口号
  19. idea做一个日志自动生成的jar包,并用flume做生产者,采集日志数据,用kafka做消费者来消费日志数据
  20. C++版 PPyolo+部署记录

热门文章

  1. android中的recovery模式
  2. CAD如何标注文字?说一个快速标注途径
  3. oracle 10g crs状态,oracle 10g cluster 如何替换ocr 主文件 (crs offline状态)
  4. 如何提升近红外实验的信噪比?如何去除伪迹?
  5. 大数据产业发展的国际经验
  6. 【在 Linux 里实现 FriendlayARM 提供的 SD-Flasher.exe工具的功能】转摘
  7. 使用PreparedStatement操作mysql数据库出现中文乱码问题
  8. 服务器怎么架设虚拟主机,服务器怎么架设虚拟主机
  9. 苹果MFI认证apple: OTS,TDMA,OTA认证费用及申请基本流程
  10. (干货 | 好文)让你效率提高10倍的23个顶级神器推荐,拿走不谢!