摘要:
1、Big O 需要定义算法的时间复杂度 不必非常精确 通常只需要了解其上界,相对简单 定义 \(f(n) = O(g(n)), \ if \ \exists \ c > 0:c * g(n) \geq f(n)\) \(f(n) = \Omega (g(n)), \ if \ \exists \ 阅读全文
摘要:
1、接口与工厂 接口是实现多重继承的途径,而生成遵循某个接口的对象的典型方式就是 工厂方法 设计模式。这与直接调用构造器不同,我们在工厂对象上调用的是创建方法(类似于Factory.build()),而该工厂对象将生成接口的某个实现的对象。理论上,通过这种方式,我们的代码将完全与接口的实现分离,这就 阅读全文
摘要:
静态初始化器,又叫静态初始化块,是 Java 类的显式的静态初始化。Java 允许将多个静态初始化动作组织成一个特殊的“静态子句”(有时也叫“静态块”)。其语法描述就是由 static 修饰的一对花括号 "" 括起来的语句组。与其他静态初始化动作一样,这段代码仅执行一次:当首次生成这个类的一个对象时 阅读全文
摘要:
复杂度 名称 例子 O(1) 常数 A[0], A[10000], 2 + 3, 2 * 3 O(\(\log N\)) 对数 折半查找 O(N) 线性 文件下载、无序查找 O(\(N^2\)) 二次型 插入排序 O(\(N^k\)) 多项式 矩阵乘法 O($2^n$) 指数 三色图、蛋白质折叠 O 阅读全文
摘要:
queue.h typedef int ElementType; /* START: fig3_57.txt */ #ifndef _Queue_h #define _Queue_h struct QueueRecord; typedef struct QueueRecord *Queue; int 阅读全文