2018年6月4日

第9章:贪婪技术——《算法笔记

摘要: 每一步选择满足条件 可行 局部最优 不可取消 局部最优产生全局最优 证明: 1.数学归纳法, 2.每步不比其他步差 3.到达问题最优上界 或得到近似解 特性问题:找一个数 问题的特征提供更多信息? 全局问题:多次查找 问题的共同特性,特性的最大子集? 拟阵:抽象组合结构 最小生成树 连通图 权重最低 阅读全文

posted @ 2018-06-04 10:37 秦梦超 阅读(218) 评论(0) 推荐(0) 编辑

第8章:动态规划——《算法笔记

摘要: 多阶段决策过程最优 问题由交叠的子问题构成 子问题:一次求解,永久保存 函数幂等 动态规划不但可以作为特殊的空间换时间权衡技术, 也可以经改进避免使用额外的空间 经典自底向上:需要求解所有子问题 试图避免不必要的子问题求解:递归 共同点:递推式 最优化法则:问题最优——子问题最优 反例:最长简单路径 阅读全文

posted @ 2018-06-04 09:27 秦梦超 阅读(151) 评论(0) 推荐(0) 编辑

2018年6月3日

第7章:时空权衡——《算法笔记

摘要: 预处理,存储额外的信息:输入增强 预构造:只涉及存取结构 动态规划:记录重复子问题。是否要求幂等? 数据压缩 计数排序:数据来自小集合时有效 明确上下界:更优 数据,频数,分布 字符串匹配 最大步进 模式对模式匹配 匹配方向左到右,右到左 散列表 散列函数 散列地址 碰撞 开散列:链 闭散列:开式寻 阅读全文

posted @ 2018-06-03 16:51 秦梦超 阅读(280) 评论(0) 推荐(0) 编辑

2018年6月2日

第6章:变治法——《算法笔记

摘要: 1.预排序 优化:及时回溯 排序过程中的语义 应用:唯一元素,最多元素, 2.高斯消元 矩阵运算相关,先跳过 3.AVL树 每个节点维护一个平衡因子:左子树高度-右子树高度 AVL树失去平衡,旋转 旋转平衡因子+-2的节点 旋转保证满足定义 保持二叉树 恢复平衡 删除的效率低 灵感:旋转树,不破坏结 阅读全文

posted @ 2018-06-02 17:13 秦梦超 阅读(200) 评论(0) 推荐(0) 编辑

2018年5月31日

电影中的编程细节

摘要: 《源代码》:局部变量的非受限生存周期 《致命魔术》:按值传递与按引用传递 阅读全文

posted @ 2018-05-31 19:12 秦梦超 阅读(100) 评论(0) 推荐(0) 编辑

2018年5月30日

第9章:数据抽象与面向对象——《实践之路》笔记

摘要: ##作用域是逻辑结构(语言定下作用域规则,控制对象的可见性) ##生存周期是物理结构(分配销毁内存,对象存在的物质基础) ##在作用域内:对象可以供当前环境使用。是否开始了生存周期?供使用的正确的值 ##在生存周期中:对象存在与内存上。根据作用域规则,是否允许程序使用 作用域控制可见性——作用域内外 阅读全文

posted @ 2018-05-30 17:17 秦梦超 阅读(140) 评论(0) 推荐(0) 编辑

2018.6月计划

摘要: 程序设计:编程原本 Unix:艺术,shell 数学:线代,微积分 python:并发,网络编程,数据库 CSAPP 神经网络:目标检测,目标识别历史 阅读全文

posted @ 2018-05-30 16:44 秦梦超 阅读(74) 评论(0) 推荐(0) 编辑

第七章:类与面向对象编程——参考手册笔记

摘要: 7.1class语句 类是创建新对象的机制 定义了一组 属性 方法method 类变量class var:所有类实例对象间共享 特性property 类主体执行期间创建的值放在类对象中,对象充当命名空间,类似于模块 7.2类实例 类实例:(以函数形式) 调用类对象 创建 __init__内,将属性分 阅读全文

posted @ 2018-05-30 16:12 秦梦超 阅读(118) 评论(0) 推荐(0) 编辑

第8章:子程序和控制结构——《实践之路》笔记

摘要: 将抽象定义成一种过程 名字 映射到复杂的程序片段 从用途与功能角度考虑 而非具体实现 控制抽象:执行良好定义的操作 数据抽象:表示数据 局部变量:执行代码语句相关的变量 参数:输入 返回值:输出 将以上三个限制于子程序作用域内 子程序代表调用方执行操作:任务委托 参数化 传递参数:传递信息(控制子程 阅读全文

posted @ 2018-05-30 10:11 秦梦超 阅读(258) 评论(0) 推荐(0) 编辑

2018年5月29日

第六章:函数与函数式编程——参考手册笔记

摘要: 6.1函数 python简化函数定义过程作用域规则,闭包,装饰器,生成器,协程:函数式编程特性列表推导,生成器表达式:声明式编程与数据处理的工具 def定义函数 调用时参数的顺序与数量匹配:位置参数定义时指定默认值,则参数可选 默认参数值:定义时作为值传入的对象,定义时复制一次不可变对象:默认参数调 阅读全文

posted @ 2018-05-29 22:04 秦梦超 阅读(127) 评论(0) 推荐(0) 编辑

第7章:数据类型——《实践之路》笔记

摘要: 大多数语言有表达式,对象的类型两个概念 类型为操作提供了隐式的上下文环境 如传递给函数类型根据类型重载函数 类型支持实现了一部分接口,限制了程序中可执行操作的集合好的类型捕捉无意义操作导致的错误 7.1类型的意义与作用7.2类型等价与相容7.3-9复合类型的语法,语义,实现 7.10对象相等,对象赋 阅读全文

posted @ 2018-05-29 22:02 秦梦超 阅读(209) 评论(0) 推荐(0) 编辑

2018年5月28日

第6章:控制流——《实践之路》笔记

摘要: 聊聊这章都讲了啥 有很多有趣的问题 1.表达式的递归定义:为什么很多概念都是以递归的形式给出的? 递归有一个终结条件,定义最终会递归到一个不可分元素,最小表达式就是一个常量或变量 通常我们是用结构(迭代)的角度考虑问题的,把表达式看做一个个运算对象拼起来的,因为程序就是这么敲出来的哈哈 而迭代的定义 阅读全文

posted @ 2018-05-28 15:08 秦梦超 阅读(182) 评论(0) 推荐(0) 编辑

第五章 程序结构与控制流——参考手册笔记

摘要: 结构化革命的重要产物 顺序,分支,循环,迭代 以及从循环或迭代中单层跳出:break ,多层跳出: return, 跳至下次迭代:continue ,跳至特定语句,多层跳出:异常处理 5.1程序结构与 运行 顺序执行语句序列 解释器顺序执行每条语句,包括主程序文件与import加载的库文件 5.2条 阅读全文

posted @ 2018-05-28 14:55 秦梦超 阅读(124) 评论(0) 推荐(0) 编辑

第四章:运算符与表达式——参考手册笔记

摘要: 表达式:用于返回值 表达式由运算符与运算对象构成 其中运算对象可以是字面量,对象,或表达式(递归的定义) 运算规则决定了语法分析的规则、语法树的结构 具体的常用操作如下 python强类型 无声明 无编译器 运行时如何: 动态检查类型? 维护类型? 4.1数值操作:数值类型 移位与按位逻辑运算符只用 阅读全文

posted @ 2018-05-28 14:32 秦梦超 阅读(107) 评论(0) 推荐(0) 编辑

关于博客文章的规划

摘要: 初步选择以下主题 每个主题的笔记会从简至繁,先文字,后排版整理,最后作图表 心得:需要做个摘要,理清行文逻辑。对零碎化的知识点另外提出。 1.程序设计语言——实践之路的笔记整理 后续将结合特定语言给出例子 完成课后例题,这个会向后推移 2.语言笔记 分析语言特性的设计 初步计划依次Python,Ja 阅读全文

posted @ 2018-05-28 11:38 秦梦超 阅读(99) 评论(0) 推荐(0) 编辑

第三章:类型与对象——参考手册笔记

摘要: 对象 构造角度 基本数据结构(使用相应的字面量) 自定义对象(使用构造器或其他构造模式) 组成角度 程序中存储的数据 包含:数据(复合) 属性:标识,地址/引用,类型,值 实例被创建后,标识与类型不可改变 对象是类型的实例 类型:对象的内部表示 (属性)与 支持的方法 可变对象:值可改变 不可变对象 阅读全文

posted @ 2018-05-28 10:34 秦梦超 阅读(102) 评论(0) 推荐(0) 编辑

Python书单

摘要: python参考手册:语言最基本组成部分,不可分割 Cookbook:分解与组合,将默认语义行为继续分隔 编程实战:设计模式 python网络编程 python语言部分 python参考手册PART1介绍了基本特征 阅读全文

posted @ 2018-05-28 09:15 秦梦超 阅读(82) 评论(0) 推荐(0) 编辑

第二章:词法约定——参考手册笔记

摘要: 这一章对应着词法分析器与语法分析器的部分检查内容 2.1 行结构与缩进 () [] {} 三种括号清晰表示了定义的开始与结束,可放在多行 \ 续行符 可将长句分为几行 缩进 用于表示不同层级的代码块 # 开始注释 2.2标识符 非数字 + 字母或数字或下划线组成 开头 +组成 _下划线开始的标识符有 阅读全文

posted @ 2018-05-28 09:10 秦梦超 阅读(100) 评论(0) 推荐(0) 编辑

2018年5月27日

第5章:分治法——《算法笔记

摘要: 原问题分解为多个子问题 1.合并排序(快排的子问题) 合并两个已经排序的序列 2.快速排序 划分排序,对小数组插排 3.树的遍历 前序中序后序 4.大整数乘法,Stanssen矩阵乘法 大整数分解为高低位,平方和公式 5.最近对与凸包 最近对:点集沿一个轴方向均分,d=min(dl,dr) 考察宽为 阅读全文

posted @ 2018-05-27 21:13 秦梦超 阅读(228) 评论(0) 推荐(0) 编辑

第4章:减治法——《算法笔记

摘要: 思考:减治提供了一种思考问题的方式 原问题与减一问题的关系 原问题划分成保持语义的子问题,可能规整划分,可能划分不定 我觉得减治与分治的共同点在于:1.问题的分解 2.子问题语义的保持(可以使用递归) 减治只需求解一个子问题,减法了无需求解的子问题 分治法需要归总子问题,并且归总的过程存在丰富的语义 阅读全文

posted @ 2018-05-27 16:24 秦梦超 阅读(1528) 评论(0) 推荐(0) 编辑

第3章:蛮力法——《算法笔记

摘要: 1.选择排序与冒泡排序 选择排序 :平方复杂性(源自键比较),但只需要n次键交换 语义:依次选择最小的元素 稳定:Y 在位:Y 最佳:n^2 最差:n^2 不同情况下,不影响键比较的次数,影响键交换的次数 冒泡排序: 平方复杂性,键交换次数不定 语义:比较相邻元素,将最大元素交换至末尾(维护末尾位置 阅读全文

posted @ 2018-05-27 16:20 秦梦超 阅读(492) 评论(0) 推荐(0) 编辑

第2章:算法效率分析——《算法笔记

摘要: 1.分析框架 时间效率,空间效率 算法输入规模n的函数 选择度量方法 数字算法:二进制位数 增长次数 时间度量: 基本操作的执行次数 最优,最差, 平均效率:输入的概率分布 摊销效率:多次运行时高成本被摊销到各个调用中 输入规模趋于无限大时,运行时间函数的增长 2.渐进符号,基本效率类型 上界,下界 阅读全文

posted @ 2018-05-27 14:41 秦梦超 阅读(577) 评论(0) 推荐(0) 编辑

算法书单

摘要: 算法设计与分析基础 阅读全文

posted @ 2018-05-27 14:12 秦梦超 阅读(73) 评论(0) 推荐(0) 编辑

第1章:绪论:基本数据结构——《算法设计与分析基础》笔记

摘要: 1.线性数据结构 数组:按索引随机访问 链表:从头节点顺序访问 栈,队列:先进先出,后进先出 优先队列:查删最大元素,加入元素 堆 图:有向图,无向图 圈:连接至自身 完全图,稠密图,稀疏图 表示方式:邻接矩阵,邻接链表 加权图 连通性,无环性 路径,简单路径 长度 连通分量 回路,无环 3.树: 阅读全文

posted @ 2018-05-27 13:06 秦梦超 阅读(169) 评论(0) 推荐(0) 编辑

第1章:绪论:重要算法类型——《算法设计与分析基础》笔记

摘要: 重要算法类型 整理完《算法设计与分析基础》的章节笔记与习题后,考虑根据算法求解的问题领域做个整理。 重要算法类型 1.排序 稳定(原下标作为第二关键字),或维护每个元素所在的序号 作为第二排序关键字排序两次? 在位(不需要额外存储空间) 重复 最优最差效率 平均效率 2.查找 顺序 折半(要求有序, 阅读全文

posted @ 2018-05-27 12:58 秦梦超 阅读(159) 评论(0) 推荐(0) 编辑

最大公因子求法

摘要: 为方便讨论,m=max(m,n) n=min(m,n) 方法1:t=n 判断t是不是n的因子 判断t是不是m的因子 优化:只在n的因子中考察t 方法2:n,m作因式分解,提取公共小因子的乘积 相关子问题:筛选法得到质数表 思考,拓展 1.用质数表优化算法 2.算法输入数量的变化:多个整数求最大公因子 阅读全文

posted @ 2018-05-27 10:47 秦梦超 阅读(1320) 评论(0) 推荐(0) 编辑

图解 欧几里德算法

摘要: 把整数看成保持面积不变,可以重排为长宽为整数的矩阵 取两个整数的最大公因子,可以看作把两个整数重排后保持一端对齐,求对齐端的最大长度 当两个整数一端对齐时,他们的差也保持对其。所以原问题问题gcd(m,n)能归结为gcd(m-n,n) 最终其中的一者成为长=1,宽=gcd(m,n)的矩形,算法终结 阅读全文

posted @ 2018-05-27 09:48 秦梦超 阅读(511) 评论(0) 推荐(0) 编辑

2018年5月26日

第3章:名字 作用域 约束——《实践之路》笔记

摘要: 一个对象拥有其语义价值的区域<其作用域 当一个变量将不再被使用,那它应该被理想的回收机制回收。但现实是我们仅当一个变量离开了其作用域,或变成不可访问,才考虑回收。 然而,作用域规则有其优点:1.可以一次性考虑一组语义相关的变量,并能对其进行成批回收。 相对于显式的作用域规则,隐式的自动垃圾回收将尝试 阅读全文

posted @ 2018-05-26 11:52 秦梦超 阅读(158) 评论(0) 推荐(0) 编辑

2018年5月22日

第1章:引言——《实践之路》笔记

摘要: 整本书的核心:语言的设计与实现 程序正文中出现的文本结构:显式的 相对而言而实现是隐式的:编译或运行时的行为。 了解设计的目的,可以用不同的语言模拟实现该设计。 行文的逻辑,对于一种特定设计: 1.设计的好处 从程序员(使用者)角度,解释使用设计的好处。 设计存在的价值:简化代码,清晰概念。 2.实 阅读全文

posted @ 2018-05-22 23:04 秦梦超 阅读(130) 评论(0) 推荐(0) 编辑

在记笔记之前——《实践之路》

摘要: 本文简单介绍对《程序设计语言——实践之路》一书的笔记安排 已完成1 3 6 7 8 9 章笔记,将作排版,图表 另开:歧义引入与确定,设计整体的一致性,python语言设计三个心得笔记 计划在6月写完2 4 14 15章的笔记。 为什么要写笔记呢,我觉得有这么几个必要: 1.一个概念的首次提出与补充 阅读全文

posted @ 2018-05-22 21:31 秦梦超 阅读(136) 评论(0) 推荐(0) 编辑

导航