We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 7c3700e commit af5f244Copy full SHA for af5f244
ch11/03_Efficiency_and_the_O-Notation.md
@@ -21,35 +21,13 @@ O(N) |线性 |加倍 |线性搜索
21
O(N log N) |--- |加倍加上与`N`成比例的量 |合并排序(`17.1.1`节)
22
O(N²) |二次方 |增加了四倍 |冒泡排序
23
24
+表 `11-1` 显示了一些常见的运行时间,以及它们应用的算法示例。例如,许多其他的运行时间是可能的,包括一些比图中更糟糕的情况。许多重要的问题只能通过采用
25
+O(2^N)的算法来解决 - 对于这些,当N加倍时,运行时间是平方的!对于除了最小的数据集之外的所有数据集,这种算法都是不可行的。
26
-
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
+有时候我们必须考虑操作成本随数据结构状态而变化的情况。例如,将元素添加到 `ArrayList` 的末尾通常可以在恒定时间内完成,除非 `ArrayList` 已达到其容
+量。在这种情况下,必须分配一个新的更大的数组,并将旧数组的内容转移到其中。此操作的成本与阵列中元素的数量成线性关系,但发生的次数相对较少。在这种情况
+下,我们计算操作的摊销成本 - 即执行 `n` 次的总成本除以 `n`,当 `n` 变得任意大时,将其取为极限。在向 `ArrayList` 添加元素的情况下,`N` 个元素的总成
+本为 `O(N)`,因此摊余成本为 `O(1)`。
53
54
55
0 commit comments