1、编程珠玑笔记一开篇
发布时间:2017-01-13 21:18
本文关键词:编程珠玑,由笔耕文化传播整理发布。
1. 编程珠玑笔记一开篇
从事于IT行业,如果不会编程,那蛤蟆只能呵呵了。
有些人将编程认识为敲字,所以一直是码农。有些人将编程认识为COPY,所以一直是搬运工。我们不是工程师,我们只是IT的搬运工~
其实编程可以不一样,是一个洞察力和创造力的集合。需要我们不停磨练编程技巧和基本的设计原理。
1、 开篇
是一个外部排序的问题,题目如下图1:
的确,一般我们想到的就是归并排序。
由于内存有限,所以一次放入内存中的数量受到了限制。那么意味需要进行多趟的读写到内存,需要更多的IO次数。
而作者是采用一个位的表示方法。用一个10位长的字符串来表示一个所有元素小于10的简单的非负整数集合。如{ 1 ,2 ,3, 5 , 8}
0 1 1 1 0 1 0 0 1 0
从左到右,表示0,1,2,3,4,5,6,7,8,9。如果为1,说明在集合中,为0说明不在集合中。 这样本来需要多个字节表示的数,通过一个位就实现了,空间瞬间就剩下了几十倍有木有?
这样就可以使用107个位,做多就是1.19M左右。但是这么多位中其实有很多稀疏位可以进行压缩的。伪代码实现如下图2,:
三个阶段就是,1、初始化位数组,2、判断该值是否存在,,存在设置为1。3、根据位数组输出排序文件。
2、 小结:
给人一种耳目一新的感觉,的确是本好书,值得好好品味。后续比较蛤蟆会将编程珠玑中的每一章进行记录,根据需要删掉作者的一些“废话”,呈现最精简同时也是最核心的部分。
本文关键词:编程珠玑,由笔耕文化传播整理发布。
本文编号:237323
本文链接:https://www.wllwen.com/wenshubaike/mishujinen/237323.html
最近更新
教材专著