1. 编程珠玑笔记一开篇

1.          编程珠玑笔记一开篇

1. 编程珠玑笔记一开篇

从事于IT行业,如果不会编程,那蛤蟆只能呵呵了。

有些人将编程认识为敲字,所以一直是码农。有些人将编程认识为COPY,所以一直是搬运工。我们不是工程师,我们只是IT的搬运工~

其实编程可以不一样,是一个洞察力和创造力的集合。需要我们不停磨练编程技巧和基本的设计原理。

欢迎转载,转载请标明出处:blog.csdn.net/notbaron/ar…

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、 小结:

给人一种耳目一新的感觉,的确是本好书,值得好好品味。后续比较蛤蟆会将编程珠玑中的每一章进行记录,根据需要删掉作者的一些“废话”,呈现最精简同时也是最核心的部分。

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部