笔记-计算机科学精粹

第2章 复杂度

1、时间复杂度-运行成本 T(n)

  • 最好情况
  • 最坏情况
  • 平均情况

2、O() 增长最快的项(主项)

 

第3章 策略

1、回溯法

2、启发式方法(启发法)

  • 贪心法 每次做出最佳选择  e.g.求解最短路径 每一步选择最短路径

3、分治法 e.g.归并排序

4、动态规划 对于重复子问题只计算一次 

  • 记忆化

5、分支界定法 解决最优化问题

限制上下界

 

第4章 数据

1、抽象数据类型(ADT)——逻辑结构

  • 优先队列

 

第5章 算法

1、图的搜索

DFS(深度优先搜索)
BFS(广度优先搜索)队列

2、寻找最短路径

  • 戴克斯特拉算法 优先队列 每个结点优先级是连接该结点与起始结点的边的权重

 

第6章 数据库

数据挖掘:从数据库中提取有用的信息。

1、关系数据库

表:列(字段),属性;行,数据条目。

模式:字段+限制(e.g. 数据的类型)

主键:表的ID字段。

外键:对其它行ID引用的字段。

??模式迁移

2、非关系数据库(noSQL)

  • 文档存储
  • 键值对存储  主要在缓存中使用。e.g.键-请求的URL,值-网页最终的HTML
  • 图数据库
  • 大数据(megadata)
SQL以数据为中心,最大限度利用数据结构,消除重复
NoSQL以应用程序为中心,便于访问

 3、分布式数据库

  • 单主机
  • 多主机
  • 分片 查询路由器

4、序列化格式

  • SQL((结构化查询语言) 常见
  • XML(可扩展标记语言)
  • JSON(JavaScript对象表示法) 大部分人认可
  • CSV(逗号分隔值) 简单   数据以文本形式存储,每行一个数据元素,属性通过逗号(或其他不在数据中出现的字符)隔开

 

第7章 计算机

1、CPU

工作流程:

  • 1)从PC指定的存储地址获取指令;  //PC program counter程序计数器
  • 2)PC自增;
  • 3)执行指令;
  • 4)返回步骤1;

PC在CPU上电时复位为默认值,它是计算机中第一条待执行指令的地址,这条指令通常是一种不可变的内置程序,加载计算机的基本功能。(在个人计算机中,这种程序称为BIOS(基本输入输出系统))

2、 编译器

  • 脚本语言:由解释器而不是CPU执行,不直接编译为机器码,解释器实时转译并执行代码。e.g.JavaScript,Python,Ruby
  • 反汇编:对二进制程序解码,用于编码CPU指令的数字→人类可读指令序列
  • 逆向工程:查看上述CUP指令,分析用途(可以确定哪部分代码负责验证软件许可证→盗版)
  • 开源软件 源代码开放

3、 存储器层次结构

CPU访问寄存器很快,访问RAM却慢很多。

  • 处理器与存储器之间的鸿沟。
  • 时间局部性,访问某个存储地址,很快会再次访问。
  • 空间局部性,访问某个存储地址,会快会访问其相邻地址。

3、缓存 集成在CPU内部

RAM:1000个CPU周期(1us)

一级缓存:10个CPU周期

二级缓存:100个CPU周期

(购买计算机,注意比较CPU一级/二级/三级缓存容量,建议选时钟频率稍低但缓存容量大的CPU)

4、存储器

第一级存储器(RAM):1 000个CPU周期(1us)

第二级存储器(主存储器(磁盘)):1 000 000个CPU周期(1ms)(CPU无法直接访问)

抖动模式:数据从磁盘读入RAM

(??服务期开始处理无法载入RAM的数据,抖动会导致服务器崩溃。 可能原因:内存不足)

??大端序,小端序

 

第8章 程序设计

编程范式

1、命令式编程

2、声明式编程

语法糖:在语言中添加语法,支持以更简短的方式编写表达式。

3、逻辑编程

 

 

参考资料

Computer Science Distilled:Learn the Artof Solving Computational Problems,by  Wladston Ferreira Filho

转载于:https://www.cnblogs.com/aeron99/p/11143178.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值