Hello 算法 1.0.0b2 Swift版. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 10. 查找算法 155 10.1. 线性查找 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 10.2. 二分查找 次,算法运行时间随着 ? 增大成线性增长。此算法的时间复杂度被称为 「线性阶」。 ‧ 算法 C 中的打印操作需要循环 1000000 次,但运行时间仍与输入数据大小 ? 无关。因此 C 的时间复杂 度和 A 相同,仍为「常数阶」。 // 算法 A 时间复杂度:常数阶 func algorithmA(n: Int) { print(0) } // 算法 B 时间复杂度:线性阶 func algorithmB(n: 相比直接统计算法运行时间,时间复杂度分析的做法有什么好处呢?以及有什么不足? 时间复杂度可以有效评估算法效率。算法 B 运行时间的增长是线性的,在 ? > 1 时慢于算法 A ,在 ? > 1000000 时慢于算法 C 。实质上,只要输入数据大小 ? 足够大,复杂度为「常数阶」的算法一定优于 「线性阶」的算法,这也正是时间增长趋势的含义。 时间复杂度的推算方法更加简便。在时间复杂度分析中,我们可以将统计「计算操作的运行时间」简化为统计0 码力 | 199 页 | 15.72 MB | 1 年前3
Hello 算法 1.1.0 Swift版是该求和函数的流程框图。 第 2 章 复杂度分析 hello‑algo.com 20 图 2‑1 求和函数的流程框图 此求和函数的操作数量与输入数据大小 ? 成正比,或者说成“线性关系”。实际上,时间复杂度描述的就是 这个“线性关系”。相关内容将会在下一节中详细介绍。 2. while 循环 与 for 循环类似,while 循环也是一种实现迭代的方法。在 while 循环中,程序每轮都会先检查条件,如果条 复杂度分析 hello‑algo.com 29 // 算法 A 的时间复杂度:常数阶 func algorithmA(n: Int) { print(0) } // 算法 B 的时间复杂度:线性阶 func algorithmB(n: Int) { for _ in 0 ..< n { print(0) } } // 算法 C 的时间复杂度:常数阶 func algorithmC(n: A 只有 1 个打印操作,算法运行时间不随着 ? 增大而增长。我们称此算法的时间复杂度为“常数 阶”。 ‧ 算法 B 中的打印操作需要循环 ? 次,算法运行时间随着 ? 增大呈线性增长。此算法的时间复杂度被称 为“线性阶”。 ‧ 算法 C 中的打印操作需要循环 1000000 次,虽然运行时间很长,但它与输入数据大小 ? 无关。因此 C 的时间复杂度和 A 相同,仍为“常数阶”。 图 2‑70 码力 | 379 页 | 18.47 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Swift 版www.hello‑algo.com 20 图 2‑1 是该求和函数的流程框图。 图 2‑1 求和函数的流程框图 此求和函数的操作数量与输入数据大小 ? 成正比,或者说成“线性关系”。实际上,时间复杂度描述的就是 这个“线性关系”。相关内容将会在下一节中详细介绍。 2. while 循环 与 for 循环类似,while 循环也是一种实现迭代的方法。在 while 循环中,程序每轮都会先检查条件,如果条 复杂度分析 www.hello‑algo.com 29 // 算法 A 的时间复杂度:常数阶 func algorithmA(n: Int) { print(0) } // 算法 B 的时间复杂度:线性阶 func algorithmB(n: Int) { for _ in 0 ..< n { print(0) } } // 算法 C 的时间复杂度:常数阶 func algorithmC(n: A 只有 1 个打印操作,算法运行时间不随着 ? 增大而增长。我们称此算法的时间复杂度为“常数 阶”。 ‧ 算法 B 中的打印操作需要循环 ? 次,算法运行时间随着 ? 增大呈线性增长。此算法的时间复杂度被称 为“线性阶”。 ‧ 算法 C 中的打印操作需要循环 1000000 次,虽然运行时间很长,但它与输入数据大小 ? 无关。因此 C 的时间复杂度和 A 相同,仍为“常数阶”。 图 2‑70 码力 | 379 页 | 18.48 MB | 10 月前3
Hello 算法 1.0.0 Swift版复杂度分析 hello‑algo.com 20 图 2‑1 是该求和函数的流程框图。 图 2‑1 求和函数的流程框图 此求和函数的操作数量与输入数据大小 ? 成正比,或者说成“线性关系”。实际上,时间复杂度描述的就是 这个“线性关系”。相关内容将会在下一节中详细介绍。 2. while 循环 与 for 循环类似,while 循环也是一种实现迭代的方法。在 while 循环中,程序每轮都会先检查条件,如果条 复杂度分析 hello‑algo.com 29 // 算法 A 的时间复杂度:常数阶 func algorithmA(n: Int) { print(0) } // 算法 B 的时间复杂度:线性阶 func algorithmB(n: Int) { for _ in 0 ..< n { print(0) } } // 算法 C 的时间复杂度:常数阶 func algorithmC(n: A 只有 1 个打印操作,算法运行时间不随着 ? 增大而增长。我们称此算法的时间复杂度为“常数 阶”。 ‧ 算法 B 中的打印操作需要循环 ? 次,算法运行时间随着 ? 增大呈线性增长。此算法的时间复杂度被称 为“线性阶”。 ‧ 算法 C 中的打印操作需要循环 1000000 次,虽然运行时间很长,但它与输入数据大小 ? 无关。因此 C 的时间复杂度和 A 相同,仍为“常数阶”。 图 2‑70 码力 | 378 页 | 17.59 MB | 1 年前3
Hello 算法 1.0.0b5 Swift版hello‑algo.com 19 图 2‑1 展示了该求和函数的流程框图。 图 2‑1 求和函数的流程框图 此求和函数的操作数量与输入数据大小 ? 成正比,或者说成“线性关系”。实际上,时间复杂度描述的就是 这个“线性关系”。相关内容将会在下一节中详细介绍。 2. while 循环 与 for 循环类似,while 循环也是一种实现迭代的方法。在 while 循环中,程序每轮都会先检查条件,如果条 ,给定三个算法 函数 A、B 和 C : // 算法 A 的时间复杂度:常数阶 func algorithmA(n: Int) { print(0) } // 算法 B 的时间复杂度:线性阶 func algorithmB(n: Int) { for _ in 0 ..< n { print(0) } } 第 2 章 复杂度分析 hello‑algo.com 27 // A 只有 1 个打印操作,算法运行时间不随着 ? 增大而增长。我们称此算法的时间复杂度为“常数 阶”。 ‧ 算法 B 中的打印操作需要循环 ? 次,算法运行时间随着 ? 增大呈线性增长。此算法的时间复杂度被称 为“线性阶”。 ‧ 算法 C 中的打印操作需要循环 1000000 次,虽然运行时间很长,但它与输入数据大小 ? 无关。因此 C 的时间复杂度和 A 相同,仍为“常数阶”。 图 2‑70 码力 | 376 页 | 30.70 MB | 1 年前3
Hello 算法 1.0.0b1 Swift版. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 10. 查找算法 155 10.1. 线性查找 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 10.2. 二分查找 次,算法运行时间随着 ? 增大成线性增长。此算法的时间复杂度被称为 「线性阶」。 ‧ 算法 C 中的打印操作需要循环 1000000 次,但运行时间仍与输入数据大小 ? 无关。因此 C 的时间复杂 度和 A 相同,仍为「常数阶」。 // 算法 A 时间复杂度:常数阶 func algorithmA(n: Int) { print(0) } // 算法 B 时间复杂度:线性阶 func algorithmB(n: 相比直接统计算法运行时间,时间复杂度分析的做法有什么好处呢?以及有什么不足? 时间复杂度可以有效评估算法效率。算法 B 运行时间的增长是线性的,在 ? > 1 时慢于算法 A ,在 ? > 1000000 时慢于算法 C 。实质上,只要输入数据大小 ? 足够大,复杂度为「常数阶」的算法一定优于 「线性阶」的算法,这也正是时间增长趋势的含义。 时间复杂度的推算方法更加简便。在时间复杂度分析中,我们可以将统计「计算操作的运行时间」简化为统计0 码力 | 190 页 | 14.71 MB | 1 年前3
从 Swift 到机器学习
- 王巍glmClassifier 开始定义 pipeline 输⼊入 299x299 保留留特性的同时限制处理理时间 内置模型 (特征提取) 2048 个特征的数组 (1, 2048) ⼴广义线性模型 (GLM) (2048, 1),与特征点乘得到结果 发⽣生了了什什么 Turi Turi • 2013, 成⽴立 • 2016, Apple 以 2 亿美元收购 • 20170 码力 | 64 页 | 4.32 MB | 1 年前3
Hello 算法 1.2.0 繁体中文 Swift 版雜湊衝突 load factor 负载因子 負載因子 separate chaining 链式地址 鏈結位址 open addressing 开放寻址 開放定址 linear probing 线性探测 線性探查 lazy deletion 懒删除 懶刪除 binary tree 二叉树 二元樹 tree node 树节点 樹節點 left‑child node 左子节点 左子節點 right‑child0 码力 | 379 页 | 18.79 MB | 10 月前3
共 8 条
- 1













