Hello 算法 1.1.0 TypeScript版是该求和函数的流程框图。 第 2 章 复杂度分析 hello‑algo.com 20 图 2‑1 求和函数的流程框图 此求和函数的操作数量与输入数据大小 ? 成正比,或者说成“线性关系”。实际上,时间复杂度描述的就是 这个“线性关系”。相关内容将会在下一节中详细介绍。 2. while 循环 与 for 循环类似,while 循环也是一种实现迭代的方法。在 while 循环中,程序每轮都会先检查条件,如果条 29 // 算法 A 的时间复杂度:常数阶 function algorithm_A(n: number): void { console.log(0); } // 算法 B 的时间复杂度:线性阶 function algorithm_B(n: number): void { for (let i = 0; i < n; i++) { console.log(0); } } // A 只有 1 个打印操作,算法运行时间不随着 ? 增大而增长。我们称此算法的时间复杂度为“常数 阶”。 ‧ 算法 B 中的打印操作需要循环 ? 次,算法运行时间随着 ? 增大呈线性增长。此算法的时间复杂度被称 为“线性阶”。 ‧ 算法 C 中的打印操作需要循环 1000000 次,虽然运行时间很长,但它与输入数据大小 ? 无关。因此 C 的时间复杂度和 A 相同,仍为“常数阶”。 图 2‑70 码力 | 383 页 | 18.49 MB | 1 年前3
Hello 算法 1.0.0b5 TypeScript 版hello‑algo.com 19 图 2‑1 展示了该求和函数的流程框图。 图 2‑1 求和函数的流程框图 此求和函数的操作数量与输入数据大小 ? 成正比,或者说成“线性关系”。实际上,时间复杂度描述的就是 这个“线性关系”。相关内容将会在下一节中详细介绍。 2. while 循环 与 for 循环类似,while 循环也是一种实现迭代的方法。在 while 循环中,程序每轮都会先检查条件,如果条 : // 算法 A 的时间复杂度:常数阶 function algorithm_A(n: number): void { console.log(0); } // 算法 B 的时间复杂度:线性阶 function algorithm_B(n: number): void { for (let i = 0; i < n; i++) { console.log(0); } } // A 只有 1 个打印操作,算法运行时间不随着 ? 增大而增长。我们称此算法的时间复杂度为“常数 阶”。 ‧ 算法 B 中的打印操作需要循环 ? 次,算法运行时间随着 ? 增大呈线性增长。此算法的时间复杂度被称 为“线性阶”。 ‧ 算法 C 中的打印操作需要循环 1000000 次,虽然运行时间很长,但它与输入数据大小 ? 无关。因此 C 的时间复杂度和 A 相同,仍为“常数阶”。 图 2‑70 码力 | 378 页 | 30.70 MB | 1 年前3
Hello 算法 1.2.0 简体中文 TypeScript 版www.hello‑algo.com 20 图 2‑1 是该求和函数的流程框图。 图 2‑1 求和函数的流程框图 此求和函数的操作数量与输入数据大小 ? 成正比,或者说成“线性关系”。实际上,时间复杂度描述的就是 这个“线性关系”。相关内容将会在下一节中详细介绍。 2. while 循环 与 for 循环类似,while 循环也是一种实现迭代的方法。在 while 循环中,程序每轮都会先检查条件,如果条 29 // 算法 A 的时间复杂度:常数阶 function algorithm_A(n: number): void { console.log(0); } // 算法 B 的时间复杂度:线性阶 function algorithm_B(n: number): void { for (let i = 0; i < n; i++) { console.log(0); } } // A 只有 1 个打印操作,算法运行时间不随着 ? 增大而增长。我们称此算法的时间复杂度为“常数 阶”。 ‧ 算法 B 中的打印操作需要循环 ? 次,算法运行时间随着 ? 增大呈线性增长。此算法的时间复杂度被称 为“线性阶”。 ‧ 算法 C 中的打印操作需要循环 1000000 次,虽然运行时间很长,但它与输入数据大小 ? 无关。因此 C 的时间复杂度和 A 相同,仍为“常数阶”。 图 2‑70 码力 | 383 页 | 18.49 MB | 10 月前3
Hello 算法 1.0.0b1 TypeScript 版. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 10. 查找算法 151 10.1. 线性查找 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 10.2. 二分查找 算法 A 只有 1 个打印操作,算法运行时间不随着 ? 增大而增长。我们称此算法的时间复杂度为「常数阶」。 ‧ 算法 B 中的打印操作需要循环 ? 次,算法运行时间随着 ? 增大成线性增长。此算法的时间复杂度被称为 「线性阶」。 ‧ 算法 C 中的打印操作需要循环 1000000 次,但运行时间仍与输入数据大小 ? 无关。因此 C 的时间复杂 度和 A 相同,仍为「常数阶」。 // 算法 A A 时间复杂度:常数阶 function algorithm_A(n: number): void { console.log(0); } // 算法 B 时间复杂度:线性阶 function algorithm_B(n: number): void { for (let i = 0; i < n; i++) { console.log(0); } } // 算法 C 时间复杂度:常数阶0 码力 | 186 页 | 14.71 MB | 1 年前3
TypeScript Handbook(中文版)
的拷贝使之产生变化,但它并没有副作用。 它们是一种纯函数。 我们的reducer将放在 src/reducers/index.tsx 文件里。 它的功能是保证增加 操作会让感叹级别加1,减少操作则要将感叹级别减1,但是这个级别永远不能小于 1。 // src/reducers/index.tsx import { EnthusiasmAction } from '../actions'; import ES3 和 ES5. Const TypeScript Handbook(中文版) 204 TypeScript 1.5 const MAX = 100; ++MAX; // 错误: 自增/减运算符不能用于一个常量 块级作用域 if (true) { let a = 4; // 使用变量 a } else { let a = "string"; // 使用变量0 码力 | 557 页 | 7.48 MB | 1 年前3
TypeScript 4.0 使用手册
生变化,但它并没有_副作用_。 它们是一种纯函数。 我们的reducer将放在 src/reducers/index.tsx 文件里。 它的功能是保证增加操作会让感叹级别 加1,减少操作则要将感叹级别减1,但是这个级别永远不能小于1。 1. // src/reducers/index.tsx 2. 3. import { EnthusiasmAction } from '../actions'; 。 复合赋值运算符作用于两个操作 数,并将运算结果赋值给左操作数。 你从前可能见到过以下代码: 1. // 加 2. // a = a + b 3. a += b; 4. 5. // 减 6. // a = a - b 7. a -= b; 8. 9. // 乘 10. // a = a * b 11. a *= b; 12. 13. // 除 14. // a } 3. } ES6 的 let 和 const 声明现在支持编译到 ES3 和 ES5. 1. const MAX = 100; 2. 3. ++MAX; // 错误: 自增/减运算符不能用于一个常量 1. if (true) { 2. let a = 4; 3. // 使用变量 a 4. } 5. else { 6. let a = "string";0 码力 | 683 页 | 6.27 MB | 1 年前3
Hello 算法 1.2.0 繁体中文 TypeScript 版雜湊衝突 load factor 负载因子 負載因子 separate chaining 链式地址 鏈結位址 open addressing 开放寻址 開放定址 linear probing 线性探测 線性探查 lazy deletion 懒删除 懶刪除 binary tree 二叉树 二元樹 tree node 树节点 樹節點 left‑child node 左子节点 左子節點 right‑child0 码力 | 384 页 | 18.80 MB | 10 月前3
共 7 条
- 1













