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

这里的过度也包括“提早”。

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

——拿不准就穷举。

 

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

 

 

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

两种不同的观点,都对,都要吸收。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值