![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Algrithoms
文章平均质量分 84
勿悔Choles
这个作者很懒,什么都没留下…
展开
-
编程珠玑第一章
下午看完编程珠玑第一章,感觉很不错!如作者所说:阅读本书一个提示,不要太快,一次阅读一章。集中精力思考,解答课后习题。 写总结就是在刚弄懂的时候,这时候是最恰当的时候,最容易接受。 题目要求:一个最多含有1000万个整数的文件,整数没有重复,请输出升序排列。 (约束):最多1M内存,时间10S。 题目很简单,但是分析的过程很经典。 刚开始想法,排序呗。。可是时间要求10S,内原创 2013-09-11 21:11:26 · 734 阅读 · 0 评论 -
编程珠玑第三章
第三章写的有点太简单了,可能作者是想在后面章节里再详细说吧! 这一章就是作者说的几句话印象还是很深刻。 程序员在节省空间方面无计可施时,将自己从代码中解脱出来,退回起点并记者并集中精力研究数据,常常能有奇效。(数据的)表示形式是程序设计的根本。 正如人月神话的作者说:只要给我你设计的表,我就对你的程序一目了然。 对退回起点进行思考的几条准则: 1.使用数组重新编写原创 2013-09-13 10:19:30 · 536 阅读 · 0 评论 -
编程珠玑第二章
不得不佩服Bentley,不愧大师,第二章写的真是超赞。 本章共3个问题,一一总结。 A题目:在一个最多包含40亿个32位整数的文件中,找出一个不在文件中的32位整数。 题解:1.如果内存足够,内存足够,就可以用第一章的位存储,存储32位整数来做。2.此题明确说了,只有几个外部的‘临时’文件可用,但是仅有几百字节内存,既然是几百字节,肯定还是用位来做,而且速度一定要快,查找算法速度原创 2013-09-12 17:25:52 · 614 阅读 · 0 评论 -
编程珠玑第五章
前四章中,我们已经深入挖掘定义了正确的问题,仔细选择算法和数据结构,通过程序验证了正确性,现在开始将成果整合到大的系统中了。 首先,我们要将二分搜索用C语言实现,这个很简单,但是实现之后,就该对这个小函数功能进行测试。这里用一个脚手架写一个例子来测试。对于测试这个方法就有很多,以前只知道print输出,单步调试,这一章作者提出了断言。 对于断言,我就知道有这么个语法,但是从原创 2013-09-15 10:13:46 · 737 阅读 · 0 评论 -
编程珠玑第四章
今天又开眼界了,原来程序也可以证明正确性啊!编写代码,可以靠编程技巧,也就是之前的问题定义,算法和数据结构,但是今天,作者告诉我们还可以用数学知识来证明程序的正确性。这让我想起了dijkstra说的,程序员跟手术师最大的区别是:手术师如果手术失败了,没有人会怪罪他,因为人体构造太负责。但是程序员就不同了,程序是你写的,你如果不能完全控制程序的正确,没有人会听你的借口。所以说:一定要原创 2013-09-14 21:26:55 · 585 阅读 · 0 评论 -
编程之美-将帅问题
编程之美也是本好书,今天早上看了将帅问题,太经典了,让我联想到了编程珠玑的第一章,都是利用位来存储,来运算。 题目:把将帅符合要求的所有位置表示出来。 条件:只能使用一个8位的变量。 思路:对将帅两重循环所有位置,将%3相同的去掉,取剩下的位置。 本题主要侧重对于位运算的理解:位运算,位字段,位存储。 #include #define HALF_BITS_LE原创 2013-09-17 08:52:57 · 682 阅读 · 0 评论 -
搜索算法第二篇
子集生成问题:给定一个集合,枚举它所有可能的子集。 一、增量构造法 第一种思路就是一次选出一个元素放到集合中。 此算法要理解好以下问题: 1.集合A中所有的元素是按照编号从小到大排列的 2.集合存储的就是元素的编号。如:(0,1,2,3,4)。 3.最后输出集合元素的编号排序。 4.由于A中的元素个数不确定,每次递归调用都要输出当前集合。原创 2013-09-23 11:13:34 · 507 阅读 · 0 评论 -
搜索算法第一篇
搜索算法真是万能的,很多问题都可以“暴力解决”,暴力搜索出答案来。 最简单的搜索莫过于枚举法,枚举整数,子串,但是在枚举过程中,如果能认真分析问题的本质,则可以优化问题。 晚上看了枚举排列算法,发现搜索真是太好用了。 1.生成1~n的排列 题目:输入整数n,按字典序从小到大的顺序输出前n个数的排列。如当n=3时,(1,2,3)、(1,3,2)、(2,1,3)、(2,3,原创 2013-09-22 22:12:33 · 525 阅读 · 0 评论