Guure

Winter Is Coming.

2017年3月18日

Java编程思想 - 第11章 持有对象

摘要: · 大量笔记存放在Github Java文件中,请移步查看:https://github.com/iGuure/AndroidCodeHub/tree/master/Java%20pratice/Thinking%20in%20Java/Collection · 容器类: 1. Collection 阅读全文

posted @ 2017-03-18 23:49 Guure 阅读(192) 评论(0) 推荐(0) 编辑

2016年11月27日

算法(第4版)-2.5 应用

摘要: 2.5.1 将各种数据排序 · 交易事务 · 指针排序 · 不可变的键 · 廉价的交换 · 多种排序方法 · 多键数组 · 使用比较器实现优先队列 · 稳定性:能够保留数组中重复元素的相对位置 稳定:插入排序、归并排序 不稳定:选择排序、希尔排序、快速排序、堆排序 2.5.2 我应该使用哪种排序算法 阅读全文

posted @ 2016-11-27 02:19 Guure 阅读(336) 评论(0) 推荐(0) 编辑
算法(第4版)-2.4 优先队列

摘要: 定义:一种支持删除最大元素和插入元素的数据结构。 经典实现:基于二叉堆数据结构。 2.4.1 API 1. 只要我们能够高效地实现insert()和delMin(),下面的优先队列用例中调用了MinPQ的TopM就能使用优先队列解决这个问题。 2.4.2 初级实现 1. 数组实现(无序):修改pop 阅读全文

posted @ 2016-11-27 02:06 Guure 阅读(487) 评论(0) 推荐(0) 编辑
算法(第4版)-2.3 快速排序

摘要: public class Quick { public static void sort(Comparable[] a) { StdRandom.shuffle(a); // 消除对输入的依赖 sort(a, 0, a.length - 1); } private static void sort( 阅读全文

posted @ 2016-11-27 01:36 Guure 阅读(359) 评论(0) 推荐(0) 编辑

2016年11月26日

算法(第4版)-2.2 归并排序

摘要: 归并:将两个有序的数组归并成一个更大的有序数组。 归并算法:先(递归地)将它分为两半分别排序,然后将结果归并起来。 · 优点:保证将任意长度为N的数组排序所需时间和NlogN成正比; · 缺点:所需的额外空间和N成正比。 2.2.1 原地归并的抽象方法 public static void merg 阅读全文

posted @ 2016-11-26 00:44 Guure 阅读(758) 评论(0) 推荐(0) 编辑

2016年11月25日

算法(第4版)-2.1 初级排序算法

摘要: 2.1.1 游戏规则 1. 排序成本模型:在研究排序算法时,我们需要计算比较和交换的数量。对于不交换元素的算法,我们会计算访问数组的次数。 2. · 原地排序算法:除了函数调用所需的栈和固定数目的实例变量之外无需额外内存的原地排序算法; · 其他排序算法:需要额外内存空间来储存另一份数组副本。 2. 阅读全文

posted @ 2016-11-25 22:13 Guure 阅读(390) 评论(0) 推荐(0) 编辑

2016年11月7日

算法(第4版)-1.5 案例研究:union-find算法

摘要: 问题→ 动态连通性:当程序从输入中读取了整数对p q时,如果已知的所有整数对都不能说明p和q是相连的,那么则将这一对整数写入到输出中。如果已知的数据可以说明p和q 是相连的,那么程序应该忽略p q这对整数并继续处理输入中的下一对整数。 该问题的应用→ 网络,变量名等价性,数字集合等。 设计API→ 阅读全文

posted @ 2016-11-07 00:21 Guure 阅读(980) 评论(0) 推荐(0) 编辑

2016年11月6日

算法(第4版)-1.4.10 展望

摘要: 总结:本小节总结了编程领域中的两大错误。 重点: 1. 常见错误一:过于关注程序的性能。 · 常常会降低生产效率,因为它会产生复杂而难以理解的代码 · 如果降低成本带来的效益并不明显,那么对运行时间的改进就不值得了 2. 常见错误二:完全忽略了程序的性能。 · 浪费了大量的时间 3. 改进程序,使之 阅读全文

posted @ 2016-11-06 00:01 Guure 阅读(298) 评论(0) 推荐(0) 编辑

2016年11月5日

算法(第4版)-1.4.9 内存

摘要: 总结:本小节讲述了Java的内存分配机制以及各种数据结构所使用的内存量。 重点: 1. 计算机中的电路很大一部分的作用就是帮助程序保存一些值并在稍后取出它们。 2. 计算机上的Java对内存的使用经过了精心的设计(程序的每个值在每次运行时所需的内存量都是一样的),但实现了Java的设备非常多,而内存 阅读全文

posted @ 2016-11-05 23:34 Guure 阅读(397) 评论(0) 推荐(0) 编辑
算法(第4版)-1.4.8 处理对于输入的依赖

摘要: 总结:如题。 重点: 1. 处理对于输入的依赖的有效方法: · 更加小心地对我们所要解决的问题所处理的输入建模 · 对最坏情况下的性能的保证 在计算机系统中最坏情况是非常现实的忧虑,因为程序的输入可能来自另外一个(可能是恶意的)用户而非自然界。例如,没有使用提供性能保证算法的网站无法抵御拒绝服务攻击 阅读全文

posted @ 2016-11-05 21:18 Guure 阅读(349) 评论(0) 推荐(0) 编辑