zoukankan      html  css  js  c++  java
  • Rob Pike

    罗布·派克_百度百科 https://baike.baidu.com/item/罗布·派克
     
    1. 你无法断定程序会在什么地方耗费运行时间。瓶颈经常出现在想不到的地方,所以别急于胡乱找个地方改代码,除非你已经证实那儿就是瓶颈所在。
    2. 估量。在你没对代码进行估量,特别是没找到最耗时的那部分之前,别去优化速度。
    3. 花哨的算法在 n 很小时通常很慢,而 n 通常很小。花哨算法的常数复杂度很大。除非你确定 n 总是很大,否则不要用花哨算法(即使 n 很大,也优先考虑原则 2 )。比如,解决常见问题时,最简单的树——二叉树(binary tree),总是比那些复杂的树(AVL树,伸展树(splay tree)和红黑树、B-树(B-tree),多叉树(trie))来的高效。
    4. 花哨的算法比简单算法更容易出 bug 、更难实现。尽量使用简单的算法配合简单的数据结构。
    只要掌握了数据结构中的四大法宝,就可以包打天下,他们是:array 、linked list 、hash table、binary tree 。这四大法宝可不是各自为战的,灵活结合才能游刃有余。比如,一个用hash table组织的symbol table,其中是一个个由字符型array构成的linked list。
    5. 以数据为中心。如果已经选择了正确的数据结构并且把一切都组织得井井有条,正确的算法也就不言自明。编程的核心是数据结构,而不是算法。
    6. 没有原则 6 。
    Ken Thompson —— Unix 最初版本的设计者和实现者,禅宗偈语般地对 Pike 的原则4 作了强调:
    拿不准就穷举
  • 相关阅读:
    微软WP7本机数据库解决方案之Sqlite
    NSIS nsDialogs Plugin
    NSIS 的 Modern UI 教程
    C# Sqlite For WP7
    铁血规则:事件预订与取消预订[转]
    .NET FRAMEWORK2.0中的农历类
    DefWndProc/WndProc/IMessageFilter的区别
    经典正则表达式分析与收藏
    博客园怎么了?
    .net项目开发工具(最近更新V2.1.0.5)
  • 原文地址:https://www.cnblogs.com/rsapaper/p/10733587.html
Copyright © 2011-2022 走看看