Guure

Winter Is Coming.

2016年11月5日

算法(第4版)-1.4.7 注意事项

摘要: 总结:如题。 重点: 1. 注意事项有如下几点: · 大常数 我们要对可能的大常数项保持敏感。 · 非决定性的内循环 内循环是决定性因素的假设并不总是正确的。 · 指令时间 每条指令执行所需的时间总是相同的假设并不总是正确的。 · 系统因素 某种垃圾收集器或是JIT编译器或是正在从因特网中进行的下载 阅读全文

posted @ 2016-11-05 16:14 Guure 阅读(274) 评论(0) 推荐(0) 编辑
算法(第4版)-1.4.6 倍率试验

摘要: 总结:本小节讲述了倍率试验的实现和作用。 重点: 1. 倍率试验的实现: · 开发一个输入生成器来产生实际情况下的各种可能的输入。 · 运行程序,它能够计算每次实验和上一次的运行时间的比值。 · 反复运行知道该比值趋近于极限2^b。 这个实验对于比值没有极限的算法无效,但它仍然适用于许多程序,我们可 阅读全文

posted @ 2016-11-05 15:48 Guure 阅读(1217) 评论(0) 推荐(0) 编辑
算法(第4版)-1.4.5 设计更快的算法

摘要: 总结:本小节通过具体的例子展示了如何设计更快的算法。 重点: 1. 我们会按照以下方式解决各种新的问题: · 实现并分析该问题的一种简单的解法。我们通常将它们称为暴力算法,例如ThreeSum和TwoSum。 · 考察算法的各种改进,它们通常都能降低算法所需的运行时间的增加数量级,例如TwoSumF 阅读全文

posted @ 2016-11-05 15:01 Guure 阅读(444) 评论(0) 推荐(0) 编辑

2016年11月3日

算法(第4版)-1.4.4 增长数量级的分类

摘要: 总结:顾名思义~ 重点: 1. 运行时间随着问题规模增大的增长速度:指数级别 > 立方级别 > 平方级别 >> 线性对数级别 > 线性级别 >> 对数级别 > 常数级别 请结合图1.4.5 典型的增长数量级函数加以理解。 2. 大多数的Java操作所需的时间均为常数。 3. 对数的底数和增长的数量级 阅读全文

posted @ 2016-11-03 23:33 Guure 阅读(1805) 评论(0) 推荐(0) 编辑
算法(第4版)-1.4.3 数学模型

摘要: 总结:本小节讲述了近似运算时间、增长数量级和成本模型的概念以及算法的分析方法。 重点: 1. Knuth的基本见地很简单--一个程序运行的总时间主要和两点有关: · 执行每条语句的耗时; · 执行每条语句的频率。 前者取决于计算机、Java编译器和操作系统,后者取决于程序本身和输入。 如果对于程序的 阅读全文

posted @ 2016-11-03 23:14 Guure 阅读(504) 评论(0) 推荐(0) 编辑
算法(第4版)-1.4.2 观察

摘要: 总结:本小节讲述了观察的方法和步骤。 重点: 1. 定量观察:计算性任务的困难程度可以用问题的规模(输入的大小或是某个命令行参数的值)来衡量。 2. Stopwatch数据类型的elapsedTime()方法能够返回自它创建以来所经过的时间,以秒为单位。 3. 有说服力的猜想:程序在不同的计算机上运 阅读全文

posted @ 2016-11-03 16:12 Guure 阅读(364) 评论(0) 推荐(0) 编辑
算法(第4版)-1.4.1 科学方法

摘要: 总结:本小节解释了何为科学方法。 重点: 1. 科学方法--假说演绎法: · 细致地观察真实世界的特点,通常还要有精确的测量; · 根据观察结果提出假设模型 · 根据模型预测未来的事件 · 继续观察并核实预测的准确性 · 如此反复直到确认预测和观察一致 2. 我们所设计的实验必须是可重现的,这样他人 阅读全文

posted @ 2016-11-03 15:32 Guure 阅读(225) 评论(0) 推荐(0) 编辑

2016年10月31日

算法(第4版)-1.3.4 综述

摘要: 重点: 1. 深入理解支持泛型和迭代的背包、队列和栈非常重要,原因有三: · 我们将以这些数据类型为基石构造本书中的其他更高级的数据结构; · 他们展示了数据结构和算法的关系以及同时满足多个有可能相互冲突的性能目标时所要面对的挑战; · 我们将要学习的若干算法的实现重点就是需要其中的抽象数据类型能够 阅读全文

posted @ 2016-10-31 02:50 Guure 阅读(210) 评论(0) 推荐(0) 编辑
算法(第4版)-1.3.3 链表

摘要: 总结:本小节讲述了链表的概念,以及用链表实现Stack、Queue和Bag的过程和优缺点。 重点: 1. 定义:链表是一种递归的数据结构,它或者为空(null),或者是指向一个结点(node)的引用,该结点含有一个泛性的元素和一个指向另一条链表的引用。 2. 我们首先用一个嵌套类来定义结点的抽象数据 阅读全文

posted @ 2016-10-31 02:36 Guure 阅读(292) 评论(0) 推荐(0) 编辑
算法(第4版)-1.3.2 集合类数据类型的实现

摘要: 总结:本小节先给出了一个简单而经典的实现,然后从泛型、调整数据大小、对象游离、迭代方面讨论它的改进。 重点: 1. 定容栈: · 只能处理String值 · 要求用例指定一个容量 · 不支持迭代 2. 我们希望用以下代码在FixCapacityStack的构造函数的实现中创建一个泛型的数组: 由于某 阅读全文

posted @ 2016-10-31 02:09 Guure 阅读(298) 评论(0) 推荐(0) 编辑