摘要:
1. Hash Table 我们都知道,二叉树、红黑树等数据结构,它们的查找都是先从根节点开始查找,从节点取出数据或者索引与查找值进行比较。 那么,有没有一种函数H,根据这个函数和查找关键字 Key,可以 直接确定查找值所在的位置 ,而不需要一个个比较。这样叫“预先知道” Key 所在的位置 阅读全文
摘要:
1. 创建一个类的过程 1.1 创建类的总体设计 设计一个类的过程包含一些特有的设计任务——定义类的特定职责,定义类所有隐藏的“秘密”,以及精确地定义了类的接口所代表的抽象概念;决定这个类是否要从其他类派生而来,以及是否允许其他类再从它派生;指出这个类中关键的公用方法,标识并设计出类所需用到的重 阅读全文
摘要:
一. 防御式编程概述 防御式编程,这一概念来自防御式驾驶。在防御式驾驶中要建立这样一种思维,那就是你永远也不能确定另一位司机将要做什么。这样才能确保在其他人做出危险动作时你也不会受到伤害。你要承担起保护自己的责任,那怕是其他司机犯的错误。 防御式编程的主要思想是:子程序应该不因传入错误数据而 阅读全文
摘要:
一 辅助调试的代码 1. 不要自动地把产品版本的限制强加于开发版之上 程序员们常常有这样一个误区,即认为产品级软件的种种限制也适用于开发中的软件。产品级的软件要求能够快速的运行,而开发中的软件则允许运行缓慢。产品级的软件要节约适用资源,而开发中的软件在使用资源时可以比较奢侈。产品级的软件不应向用 阅读全文
摘要:
一 最省事的违反价格管制 1. 张五常最重要的论文 每当价格受到人为干预,就会出现价格以外的竞争,我们把这种现象称为短缺或过剩。但短缺和过剩究竟会引发那些类型的竞争呢? 华人经济学家张五常在《一种价格管制理论》中回答了这个问题。他首先就是了什么叫价格管制。价格管制和税收不一样。如果一间公寓的 阅读全文
摘要:
1.个人估值的多层含义 根据阿尔钦的定义,“一个人对一件商品的个人估值,是他为了得到这件商品所愿意支付的其他商品的数量”。 个人估值这个定义,虽然简单,但它有几层含义: 第一,个人估值是个人的估值,不是集体的估值。集体不会感受,不会思考,也不会评估,做出个人估值判断的一定是个人。 第 阅读全文
摘要:
1. 成本是放弃了的最大代价 当一个资源有若干个选项时,被选中的那个选项,它的成本就是所有放弃了的选项当中价值最高的那个。简言之,成本就是放弃了的最大代价。 2.沉没成本不是成本 我们说,成本是放弃了的最大代价,而如果没什么可放弃的,也就不存在成本。沉没成本,就是指那些已经发生DNA不可回收 阅读全文
摘要:
1. 人类面临的四大基本约束:东西不够、生命有限、互相依赖、需要协调 1. 破窗理论 一个顽童把窗户打破了,窗户的主人就要去买玻璃,这将刺激玻璃的生产。制作玻璃的工人完成订单以后,有了钱,就可以去买面包,面包工人又可以去买衣服。这样就推动了一连串的生产。 2.万物存活看条件,与理性与否无关 阅读全文
摘要:
一. 使用函数时要特别考虑的问题 现代的编程语言,如C++、Java、Visual Basic等,都同时支持函数和过程。函数是指由返回值的子程序;过程是指没有返回值的子程序。在C++中,通常把所有的子程序都称为函数;然而,那些返回值类型为void的函数在语义上其实就是过程。 1. 什么时候使用函 阅读全文
摘要:
1. 如何使用子程序参数 子程序之间的接口是程序中最易出错的部分之一。研究发现,程序中有 39% 的错误都是属于内部接口错误——也就是子程序之间互相通信时所发生的错误。以下是一些可以减少接口错误的知道原则。 1.1 按照输入 修改 输出的顺序排列参数 不要随机地或按字母顺序排列参数,而应该先 阅读全文