代码改变世界

随笔档案-2012年04月

《编程珠玑,字字珠玑》读书笔记完结篇——AVL树

2012-04-26 14:34 by 捣乱小子, 12544 阅读, 收藏, 编辑
摘要: 写在最前面的 手贱翻开了《珠玑》的最后几章,所以这一篇更多是关于13、14、15章的内容。这篇文章的主要内容是“AVL树”,即平衡树,比红黑树低一个等次。捣乱真惹不起红黑树,情况很复杂;而AVL思路比较清晰。《编程珠玑,字字珠玑》910读书笔记——代码优化更新了,做了点关于“哨兵”的笔记。在这篇文章的末尾,笔者还加了对引用调用的“大彻大悟”。 4篇读书笔记:全在这里 AVL树 学习数据结构... 阅读全文

《编程珠玑,字字珠玑》910读书笔记——代码优化

2012-04-15 13:39 by 捣乱小子, 4911 阅读, 收藏, 编辑
摘要: 写在最前面的 再庞大复杂的代码编译器都能接受,编译器会变得越来越聪明,让我们原本的代码更加高效。但是代码执行的多变与不可预测性,如果编译器大肆“优化”,偶尔或者大胆的说“在大多数情况下”,会得到“聪明反被聪明误”的后果,所以编译器非常小心谨慎,一遇到不可预测后果的优化,它就会立即折返,停止这一步的优化工作,因为它不知道程序员的本意是什么,“它怕得罪你”。 程序员要编写容易优化的代码,以帮助编译器扫清障碍。关于代码优化,笔者特别喜欢《深入理解计算机系统》一书中的第五章,有兴趣的可以阅读一下。代码优化小剖代码优化的方法总结了5种。 将函数展开,即内敛函数,以优化函数的调用。 《从简单的算法初探过. 阅读全文

《编程珠玑,字字珠玑》45678读书笔记——编程技巧

2012-04-06 21:03 by 捣乱小子, 2951 阅读, 收藏, 编辑
摘要: 写在最前面的 就像上一篇文章说的,“编程永远是后话”!在有了可靠的问题分析过程和数据结构的选择,能正确运行的“二分搜索”代码出现之前,把其主要的思路先在草稿上实现,即伪代码。但由于伪代码执行结果的不确定性,需要有一个验证的过程。笔者非常不喜欢这个过程,因为这个过程很繁琐,而且推出的结论不一定是正确的(毕竟没有实实在在在机器上运行得到正确的结果),在笔者看来,给一个算法题,知道用什么算法,数据结构,如果能用伪代码实现,离成功已经不远了。 但后来我又反驳了自己的观点(矛盾体啊),理由:至少到目前为止,写的都是小程序、小算法题,验证过程可能已经被潜移默化解决了。实战演练:动态规划矩阵连乘... 阅读全文