编程珠玑(第2版·修订版)
最新书摘:
-
實習生2013-09-07地下室有150箱酒,每年喝掉25箱并买入25箱,那麽每箱酒保存的时间是多长?Little定律告诉我们是6年。
-
實習生2013-09-07这个地方可以容纳约60人,每个人在里面逗留时间大约是3小时,因此我们进入夜总会的速率大概是每小时20个人。
-
實習生2013-09-07考虑一个带有输入和输出的任意系统,Little定律指出“系统中物体的平均数量等于物体离开系统的平均速率和每个物体在系统中停留的平均时间的乘积。”
-
實習生2013-09-07假设以年利率r%投资一笔钱y年,金融版本的72法则指出,如果r*y=72,那麽你的投资差不多会翻倍。该近似相当精确:以年利率6%投资1000美元12年,可得到2012美元;一年利率8%投资1000美元9年,可得到1999美元。72法则用于估算指数过程的增长非常便利,如果一个盘子里的菌群以每小时3%的速率增长,那麽其数量每天都会翻倍。翻倍使程序员回忆起了熟悉的经验法则:由于2^10=1024,10次翻倍大约是1000倍,20次翻倍大约是100万倍,30次翻倍大约是10亿倍。假设一个指数程序解决规模为n=40的问题需要10秒的时间,并且n每增加1运行时间就增加12%。72法则告诉我们,n每增加6,运行时间就加倍。或者n每增加60,运行时间就增加为原来的1000倍。。。
-
Jimmy Sun2013-02-21几个重要的算法设计技术:1 保存状态,避免重新计算2 将信息预处理到数据结构中3 分治算法4 扫描算法(有关数组的问题可以通过提问“如何将x[0...i-1]的解决方案扩展为x[0...i]的解决方案?”得到解决)5 累积6 下限
-
Jimmy Sun2013-01-22将重复性代码改写到数组中。封装复杂的结构。尽可能地使用高级工具。让数据去构造程序。
-
ziyoudefeng2012-12-27如何使用位逻辑运算(例如与、或、移位)来实现位向量?
-
[已注销]2012-09-09p7开篇问题示范的普遍原则:1,恰当的问题2,位图数据结构3,多轮(multiple pass)4,时间和空间的权衡5,简单的设计6,程序设计阶段p37程序验证:1,断言,输入、变量、输出之间的关系断言很重要2,迭代控制结构证明循环的正确性:初始化、中间过程、终止都满足条件。并用数学归纳法证明中间所有步骤都满足条件。3,函数:进入和返回值是否满足条件和所需功能p64估算技巧1,72法则时间是y,年利率是r%,如果r×y=72,则投入的钱会翻番2,一年有pi×10^7秒p79一维最大和子序列问题的启示1,保存状态,避免重复计算2,将信息预处理到数据结构中3,分治算法4,动态规划算法,能不能将子问题的最优解扩展5,累积,在处理范围时,累积从头开始的和从而求得中间的范围和6,下限,证明算法的下限p91代码优化1,%运算开销大约是算术运算的10倍2,如果程序的大部分时间花在访问内存上,那么企图减少计算时间是毫无用处的。3,展开循环可以加速代码,因为减少了对循环变量的赋值4,保存数组最末尾的元素,可以在for循环中取消测试是否达到数组尾的条件,从而加速5,将三角函数的使用用几何计算代替6,用宏代替函数,可以加速过程层次从而加速7,设法减少分页和增加高速缓存命中率p103数据空间技术1,稀疏数据结构用数组实现稀疏矩阵2,数据压缩压缩的编码方式3,动态空间分配4,垃圾回收5,压缩程序空间(1)使用函数(2)用解释器替换长的程序文本6,转换成机器语言p112循环不变式设计循环时,列出循环每一步时都满足的条件。p116排序1,c++库sort的效率很高2,一端扫描的简单快排在所有元素都相同时,时间复杂度n^23,两端扫描的快排在上述情况下仍是nlogn,但增加了交换...
-
邻家の躺平人2011-08-08求数组最大元素的递归算法中,如果用宏max替代函数max,复杂度会有什么变化?#define max(a,b) ((a) > (b) ? (a) : (b))
-
邻家の躺平人2011-08-03分析中,令cum[i]=x[0]+x[1]+x[2]+...+x[i],那么如果cum[l-1] = cum[u],则说明x[l]+x[l+1]+...+x[u] = 0,然后对cum数组排序,找到相邻最接近的元素即可
-
邻家の躺平人2011-07-23function exp(x, n)if n = 0return 1else if even(n)return square(exp(x, n/2))elsereturn x*exp(x, n-1)
-
邻家の躺平人2011-07-20算得两个日期在相应年份中的编号,用后者减去前者,再加上年份之差的365倍,再为每一个闰年加上1
-
邻家の躺平人2011-06-20第九题:顺序搜索和二分搜索代表了搜索时间和预处理时间的折中。处理一个n元表格时,需要执行多少次二分搜索才能弥补排序带来的消耗?
-
邻家の躺平人2011-04-10from[i]<top并且to[from[i]]=i
-
Single Bit2011-04-01Rework repeated code into arrays.A long stretch of similar code is often best expressed by the simplest of data structures,the array.Encapsulate complex structures.When you need a sophisticated data structure,define it in abstract terms,and express those operations as a class.Use advanced tools when possible.Hpertext,name-value pairs,spreadsheets,databases,languages and the like are powerful tools within their specialized problem domains.Let the data structure the program.The theme of this column is that data can structure a program by replacing complicated code with an appropriate data structure.Although the particulars change,the theme remains:before writing code,good programmers thoroughly understand the input,the output and the intermediate data strutures aroud which theri p...
-
见龙在田2022-06-19程序员的主要问题与其说是技术问题,还不如说是心理问题:他不能解决问题,是因为他企图解决错误的问题。问题的最终解决,是通过打破他的概念壁垒。
-
见龙在田2022-06-19我错就错在马上回答了这个问题。
-
孔明2015-06-16他们估计那些经过极度调优的代码(具有谨慎的寄存器分配和指令选择)的规模只有从高级语言编译过来的等价代码的一半(尽管那时编译器已经有了很大的改进)。紧凑的汇编代码运行起来也非常快。
-
随候鸟南飞2012-09-20习题2:如何使用位逻辑运算来实现位向量?
-
随候鸟南飞2012-09-19位图或位向量表示集合