您的位置:首页 > 其它

Unix文化——不要过度优化,有关算法

2010-03-06 00:44 253 查看
这里的过度也包括“提早”。



下面的话是Rob Pike,最伟大的C语言大师之一说的,放在这里,已示惊醒:



1.你无法断定程序会在什么地方耗费运行时间。瓶颈经常出现在想不到的地方,所以别急着胡乱找个地方改代码,除非你已经证明那儿就是瓶颈所在;



2.估量。在你没对代码进行估量,特别是没找到最耗时的那部分之前,别去优化速度;



3.花哨的算法在n很小时通常很慢,而n通常很小。花哨算法的常数复杂度很大。除非你确定n总是很大,否则不要使用花哨算法。(即使n很大,也优先考虑原则2)



4.花哨的算法比简单算法更容易出bug,更难实现。尽量使用简单的算法配合简单的数据结构;



5.数据压倒一切。如果已经选择了正确的数据结构并且把一切都组织的井井有条,正确的算法也就不言自明。编程的核心是数据结构,而不是算法。



Ken Thompson对第四条给了更加精辟的补充



——拿不准就穷举。



以上摘自《Unix编程艺术》。从这些简单的文字,我们可以看到当年的大师,尤其是unix程序员对待数据结构,对待算法的态度,同时也能看到他们对待简单与复杂的辩证的视角。这些值得我们自己写程序时好好思考,即使在当今大数据量越来越显重要的情况下。





——你处理的数据量的大小决定了你真正的能力。

两种不同的观点,都对,都要吸收。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: