编程的核心是数据结构,而不是算法

Rob Pike, 最伟大的 C 语言大师之一 , 在Notes on C Programming(英文原文)中从另一个稍微不同的角度表述了 Unix 的哲学:

  1. 你无法断定程序会在什么地方耗费运行时间。瓶颈经常出现在想不到的地方,所以别急于胡乱找个地方改代码,除非你已经证实那儿就是瓶颈所在。
  2. 估量。在你没对代码进行估量,特别是没找到最耗时的那部分之前,别去优化速度。
  3. 花哨的算法在 n 很小时通常很慢,而 n 通常很小。花哨算法的常数复杂度很大。除非你确定 n 总是很大,否则不要用花哨算法(即使 n 很大,也优先考虑原则 2 )。
  4. 花哨的算法比简单算法更容易出 bug 、更难实现。尽量使用简单的算法配合简单的数据结构。
  5. 数据压倒一切。如果已经选择了正确的数据结构并且把一切都组织得井井有条,正确的算法也就不言自明。编程的核心是数据结构,而不是算法。
  6. 没有原则 6 。

Ken Thompson —— Unix 最初版本的设计者和实现者,禅宗偈语般地对 Pike 的原则4 作了强调:

拿不准就穷举

via: newsmth-algorithm

本日志由 胡子 于 2008-09-23 17:47:10 发表到 学习随笔 中,目前已经被浏览 1198 次,评论 0 次;

作者添加了以下标签: 编程核心数据结构不是算法

   【编者按】

    今天是第6个“公民道德宣传日”。重提道德,似乎给人老生常谈之嫌,事实上,在致力于依法治国和以德治国的转型期的中国,着力提升全民的道德水平,意义非凡。日前社科院一项调查报告显示,近7成人认为“善良正直的人常吃亏”。这对我们无疑是一种警示。

    时代新形势既使得民众追求文明的愿望更加强烈,也向公民道德建设提出了新挑战。建立与社会主义市场经济相适应、与社会主义法律法规相协调、与中华民族传统美德相承接的社会主义思想道德体系,对于构建和谐社会、培育民族精神及全面建设小康社会,善莫大焉。

本日志由 胡子 于 2008-09-20 15:29:40 发表到 食品卫生安全 中,目前已经被浏览 1116 次,评论 0 次;

作者添加了以下标签: 提升全民道德水平市场经济不是见利忘义

首页只显示了部分日志内容,要查看日志的全部内容请阅读全文