《编程珠玑 Ⅰ》 - 书摘精要

(P12) 二分搜索: 初始条件是已知一个对象存在于一个给定的范围内,而一次探测操作可以告诉我们该对象是否低于、等于或高于给定的位置。二分搜索通过重复探测当前范围的中点 来定位对象,那么我们将当前范围减半,然后继续下一次探测。当找到所需要的对象或范围为空时停止;

(P14) 翻转代码在时间和空间上都很高效,而且代码非常简短;

(P16) 
排序:排序最显而易见的用处是产生有序的输出,该输出既可以是系统规范要求的一部分,也可以是另一个程序的前期准备工作;

二分搜索:该算法在有序表中查找元素时极为高效,并且可用于内存排序或磁盘排序。唯一的缺陷就是整个表必须已知并且事先排好序;

(P21) 恰当的数据视图实际上决定了程序的结构;

(P28) “能用小程序实现的,就不要编写大程序”;

(P60) 决定在某一特定层面着手之前,请先考虑一下所有可能的设计层面,然后选择“性价比”最高的那一个:投入最小的精力就可以获得最大加速系数的那个层面设计;

(P70) 任何事情都应该尽量简单,但不宜过于简单;

(P78) 合适的算法设计可以极大地减少运行时间;

(P124) “软件工程的目的是控制复杂度,而不是增加复杂度” —— Pamela Zave;

你可能感兴趣的:(算法,编程珠玑)