《编程珠玑》第二章 aha算法】的更多相关文章

A题:给定一个最多包含40亿个随机排列的32位整数的顺序文件,找出一个不在文件中的32位整数. 1.在文件中至少存在这样一个数? 2.如果有足够的内存,如何处理? 3.如果内存不足,仅可以用文件来进行处理,如何处理? 答案: 1 int 为32位有(expt 2 32) 4294967296 42亿多个数,由于现在数只有40亿,所以必然有整数缺少了. 2.如果采用bitmap位数思想来存放,则32位整数最多需要占用43亿个位.约512MB的内存空间  (2`32/8=512MB) 可以采用前一章…
该算法也就是所谓的位图算法,用一个int表示32位,也就是实际值为1~32的数. 按照书里说的, 该算法只适合内存有限,而磁盘和时间不限,且数字在1~MAX之间不重复的排序. package demo1; /** * Created with IntelliJ IDEA. * User: wsyang * Date: 13-11-3 * Time: 8:11 * To change this template use File | Settings | File Templates. */ pu…
<Ruby元编程> 第二章 对象模型 类定义揭秘inside class definitions: class关键字更像一个作用域操作符,核心作用是可以在里面随时定义方法. [].methods.grep(/^re/):调用 出Array的所有以re开头的method. Monkeypatch:涉及全局修改,定义某个方法前应该仔细检查该类是否已有同名的方法. 实例对象存放在对象中,方法存放在类中. 类的真相:类本身也是对象.Ruby允许在运行时修改类的信息. Class.instance_me…
本文是我翻译<JavaScript Concurrency>书籍的第二章 JavaScript运行模型,该书主要以Promises.Generator.Web workers等技术来讲解JavaScript并发编程方面的实践. 完整书籍翻译地址:https://github.com/yzsunlei/javascript_concurrency_translation .由于能力有限,肯定存在翻译不清楚甚至翻译错误的地方,欢迎朋友们提issue指出,感谢. 本书第一章我们探讨了JavaScri…
1  精确描述问题 第一章强调的重点在于”精确的描述问题“,这是程序开发的第一步 -- "Problem definition" 1.1  Precise problem statement 1) input: a file containing at most 107 positive intergers (each < 107); any interger occurs twice is an error; no other data is associated with t…
第一节synchronized同步方法目录 1.1方法内的变量为线程安全的 1.2实例变量非线程安全 1.3多个对象多个锁 1.4synchronized方法与锁对象 1.5脏读 1.6synchronized锁重入 1.7出现异常,锁自动释放 1.8同步不具有继承性 1.1方法内的变量为线程安全的 说到线程安全,就要提到非线程安全问题了: "非线程安全问题":在多个线程同时对同一个对象中的实例变量进行访问时发生.产生的结果就是脏读(读到被修改过的数据). "线程安全&quo…
第一节synchronized同步方法目录 1.1方法内的变量为线程安全的 1.2实例变量非线程安全 1.3多个对象多个锁 1.4synchronized方法与锁对象 1.5脏读 1.6synchronized锁重入 1.7出现异常,锁自动释放 1.8同步不具有继承性 1.1方法内的变量为线程安全的 说到线程安全,就要提到非线程安全问题了: “非线程安全问题”:在多个线程同时对同一个对象中的实例变量进行访问时发生.产生的结果就是脏读(读到被修改过的数据). “线程安全”获得的实例变量是经过同步处…
第二章 一切都是对象 2.1 用引用操纵对象   创建一个String引用: String s;   这里所创建的只是引用,并不是对象.   创建一个引用的同时便初始化: String s = "abc"; 2.2 必须由你创建所有对象   创建一个引用,希望它能与一个新对象相关联: String s = new String("abc"); 引用 = new 对象; 2.2.1 保存到什么地方 寄存器.这是最快的保存区域,在处理器内部,由编译器分配不能直接的控制.…
/*第二讲 C语言预备专业知识 1.CPU 内存条 硬盘 显卡 主板 显示器之间的关系 CPU不能直接处理硬盘上的数据 文件存储在硬盘,当运行时,操作系统把硬盘上的数据调用到内存条上. 图像以数据的形式通过显卡在显示器上输出 声音以数据的形式发送给声卡输出 这些硬件在主板的插槽上通过主板电路组合在一起 2.Hello World程序是如何运行起来的 源代码,通过编译(Compile) 链接(Build),生成.exe可执行文件. 软件请求操作系统来执行.exe执行文件 操作系统调用CPU来运行程…
无论一门语言有多么流行或多么优秀,它总是存在一些问题,C语言也不例外.本章讨论的重点是C语言本身存在的问题,作者煞费苦心的用一个太空任务和软件的故事开头,也用另一个太空任务和软件的故事结尾,引人入胜. 关于这两个故事,在这里不说,有兴趣的朋友还是建议买这本书去看看,这本书用相当轻松的文字而又不失深沉地向我们道来C语言的各种特性与特别的用法. 书中提到一种分析编程语言缺陷的方法,让我们能够详细的去分析各种编程语言的缺陷,即把所有的缺陷归于3类:不该做的做了(多做之过).该做的没做(少做之过).该做…