【编程珠玑】-开篇

【编程珠玑】-开篇


       昨天入手《 编程珠玑》(第二版)一书,去年寒假已经把这书看了一大半,发现里面的一些算法和观点简单而富有哲理。

       一、准确描述问题:程序员的主要问题与其说是技术问题,还不如说是心理问题,他不能解决问题,是因为他企图解决错误的问题。所以准确描述一个问题非常重要,实际中往往体现中需求文档的规范性和无异性中。

      二、位图或者向量表示集合
              1)、位图数据结构的实现
  
#define BITSPERWORD 32
#define SHIFT 5
#define MASK 0x1F
#define N 10000000

int a[1 + N/ BITSPERWORD];

void set(int i) {        a[i>>SHIFT] |=  (1<<(i & MASK)); }

void clr(int i) {        a[i>>SHIFT] &= ~(1<<(i & MASK)); }
int  test(int i)return a[i>>SHIFT] &   (1<<(i & MASK)); }
            2)、位图可以用于排序和和统计当中,合理应用往往可以得到时间-空间折中与双赢

        三、原理
         1)、正确的问题:明确了问题,这场战役就成功了90%
         2)、位图数据结构
         3)、多趟算法:这些算法多趟读入其输入数据,每次完成一步
         4)、时间-空间折中与双赢
         5)、简单的设计:设计者确定其设计已经达到了完美的标准不是不能增加任何东西,而是不能再减少任何东西
         6)、程序的设计阶段

你可能感兴趣的:(【编程珠玑】-开篇)