 Golang 101(Go语言101 中文版)  v1.21.a有帮助。 4. 将接口值视为用于包裹非接口值的盒子。 我发现将接口值视为用于包裹非 接口值的盒子对于清除很多和接口相关的困惑非常有帮助。 5. 澄清了Go白皮书中的一些含糊描述,包括内嵌规则、提升方法估值和恐慌/ 恢复机制。 6. 汇总了许多知识点和细节,从而可以帮助Go程序员节省很多学习时间。 有什么其它值得一提吗? 本书不涵盖自定义泛型相关内容。 请阅读《Go自定义泛型101》 一书来了解 面量,则其必须为并且总是被视为十进制形式。 一些例子: 1.23i 1.i .23i 123i 0123i // == 123i(兼容性使然。见下) 1.23E2i // == 123i 1e-1i 011i // == 11i(兼容性使然。见下) 00011i // == 11i(兼容性使然。见下) // 下面这几行从Go 1.13开始才能编译通过。 0o11i // == 9i 0x11i 字母的UTF-8编码只需要一个字节;每个中文字符的UTF-8编码需要三个字节。 直白反引号风格的字面表示中是不支持转义字符的。 除了首尾两个反引号,直 白反引号风格的字面表示中不能包含反引号。 为了跨平台兼容性,直白反引号 风格的字面表示中的回车符(Unicode码点为0x0D) 将被忽略掉。 字符串类型的零值在代码里用 ""或``表示。 基本数值类型字面量的适用范围 一个数值型的字面量只有在不需要舍入时,才能用来表示一个整数基本类型的0 码力 | 608 页 | 1.08 MB | 1 年前3 Golang 101(Go语言101 中文版)  v1.21.a有帮助。 4. 将接口值视为用于包裹非接口值的盒子。 我发现将接口值视为用于包裹非 接口值的盒子对于清除很多和接口相关的困惑非常有帮助。 5. 澄清了Go白皮书中的一些含糊描述,包括内嵌规则、提升方法估值和恐慌/ 恢复机制。 6. 汇总了许多知识点和细节,从而可以帮助Go程序员节省很多学习时间。 有什么其它值得一提吗? 本书不涵盖自定义泛型相关内容。 请阅读《Go自定义泛型101》 一书来了解 面量,则其必须为并且总是被视为十进制形式。 一些例子: 1.23i 1.i .23i 123i 0123i // == 123i(兼容性使然。见下) 1.23E2i // == 123i 1e-1i 011i // == 11i(兼容性使然。见下) 00011i // == 11i(兼容性使然。见下) // 下面这几行从Go 1.13开始才能编译通过。 0o11i // == 9i 0x11i 字母的UTF-8编码只需要一个字节;每个中文字符的UTF-8编码需要三个字节。 直白反引号风格的字面表示中是不支持转义字符的。 除了首尾两个反引号,直 白反引号风格的字面表示中不能包含反引号。 为了跨平台兼容性,直白反引号 风格的字面表示中的回车符(Unicode码点为0x0D) 将被忽略掉。 字符串类型的零值在代码里用 ""或``表示。 基本数值类型字面量的适用范围 一个数值型的字面量只有在不需要舍入时,才能用来表示一个整数基本类型的0 码力 | 608 页 | 1.08 MB | 1 年前3
 Golang 101(Go语言101 中文版)  v1.21.a有帮助。 4. 将接口值视为用于包裹非接口值的盒子。 我发现将接口值视为用于包裹 非接口值的盒子对于清除很多和接口相关的困惑非常有帮助。 5. 澄清了Go白皮书中的一些含糊描述,包括内嵌规则、提升方法估值和恐 慌/恢复机制。 6. 汇总了许多知识点和细节,从而可以帮助Go程序员节省很多学习时间。 有什么其它值得一提吗? 本书不涵盖自定义泛型相关内容。 请阅读《Go自定义泛型101》 字面量,则其必须为并且总是被视为十进制形式。 一些例子: 1.23i 1.i .23i 123i 0123i // == 123i(兼容性使然。见下) 1.23E2i // == 123i 1e-1i 011i // == 11i(兼容性使然。见下) 00011i // == 11i(兼容性使然。见下) // 下面这几行从Go 1.13开始才能编译通过。 0o11i // == 9i 0x11i 字母的UTF-8编码只需要一个字节;每个中文字符的UTF-8编码需要三个字 节。 直白反引号风格的字面表示中是不支持转义字符的。 除了首尾两个反引号, 直白反引号风格的字面表示中不能包含反引号。 为了跨平台兼容性,直白反 引号风格的字面表示中的回车符(Unicode码点为0x0D) 将被忽略掉。 字符串类型的零值在代码里用 ""或``表示。 基本数值类型字面量的适用范围 一个数值型的字面量只有在不需要舍入时,才能用来表示一个整数基本类型的0 码力 | 821 页 | 956.82 KB | 1 年前3 Golang 101(Go语言101 中文版)  v1.21.a有帮助。 4. 将接口值视为用于包裹非接口值的盒子。 我发现将接口值视为用于包裹 非接口值的盒子对于清除很多和接口相关的困惑非常有帮助。 5. 澄清了Go白皮书中的一些含糊描述,包括内嵌规则、提升方法估值和恐 慌/恢复机制。 6. 汇总了许多知识点和细节,从而可以帮助Go程序员节省很多学习时间。 有什么其它值得一提吗? 本书不涵盖自定义泛型相关内容。 请阅读《Go自定义泛型101》 字面量,则其必须为并且总是被视为十进制形式。 一些例子: 1.23i 1.i .23i 123i 0123i // == 123i(兼容性使然。见下) 1.23E2i // == 123i 1e-1i 011i // == 11i(兼容性使然。见下) 00011i // == 11i(兼容性使然。见下) // 下面这几行从Go 1.13开始才能编译通过。 0o11i // == 9i 0x11i 字母的UTF-8编码只需要一个字节;每个中文字符的UTF-8编码需要三个字 节。 直白反引号风格的字面表示中是不支持转义字符的。 除了首尾两个反引号, 直白反引号风格的字面表示中不能包含反引号。 为了跨平台兼容性,直白反 引号风格的字面表示中的回车符(Unicode码点为0x0D) 将被忽略掉。 字符串类型的零值在代码里用 ""或``表示。 基本数值类型字面量的适用范围 一个数值型的字面量只有在不需要舍入时,才能用来表示一个整数基本类型的0 码力 | 821 页 | 956.82 KB | 1 年前3
 Golang 101(Go语言101 中文版)  v1.21.a有帮助。 4. 将接口值视为用于包裹非接口值的盒子。 我发现将接口值视为用于包裹非接 口值的盒子对于清除很多和接口相关的困惑非常有帮助。 5. 澄清了Go白皮书中的一些含糊描述,包括内嵌规则、提升方法估值和恐慌/恢 复机制。 6. 汇总了许多知识点和细节,从而可以帮助Go程序员节省很多学习时间。 有什么其它值得一提吗? 本书不涵盖自定义泛型相关内容。 请阅读《Go自定义泛型101》 (https://gfw 则其必须为并且总是被视为十进制形式。 一些例子: 1.23i 1.i .23i 123i 0123i // == 123i(兼容性使然。见下) 1.23E2i // == 123i 1e-1i 011i // == 11i(兼容性使然。见下) 00011i // == 11i(兼容性使然。见下) // 下面这几行从Go 1.13开始才能编译通过。 0o11i // == 9i 0x11i 的UTF-8编码只需要一个字节;每个中文字符的UTF-8编码需要三个字节。 直白反引号风格的字面表示中是不支持转义字符的。 除了首尾两个反引号,直白反 引号风格的字面表示中不能包含反引号。 为了跨平台兼容性,直白反引号风格的字 面表示中的回车符(Unicode码点为0x0D) 将被忽略掉。 字符串类型的零值在代码里用 ""或``表示。 基本数值类型字面量的适用范围 一个数值型的字面量只有在不需要0 码力 | 591 页 | 21.40 MB | 1 年前3 Golang 101(Go语言101 中文版)  v1.21.a有帮助。 4. 将接口值视为用于包裹非接口值的盒子。 我发现将接口值视为用于包裹非接 口值的盒子对于清除很多和接口相关的困惑非常有帮助。 5. 澄清了Go白皮书中的一些含糊描述,包括内嵌规则、提升方法估值和恐慌/恢 复机制。 6. 汇总了许多知识点和细节,从而可以帮助Go程序员节省很多学习时间。 有什么其它值得一提吗? 本书不涵盖自定义泛型相关内容。 请阅读《Go自定义泛型101》 (https://gfw 则其必须为并且总是被视为十进制形式。 一些例子: 1.23i 1.i .23i 123i 0123i // == 123i(兼容性使然。见下) 1.23E2i // == 123i 1e-1i 011i // == 11i(兼容性使然。见下) 00011i // == 11i(兼容性使然。见下) // 下面这几行从Go 1.13开始才能编译通过。 0o11i // == 9i 0x11i 的UTF-8编码只需要一个字节;每个中文字符的UTF-8编码需要三个字节。 直白反引号风格的字面表示中是不支持转义字符的。 除了首尾两个反引号,直白反 引号风格的字面表示中不能包含反引号。 为了跨平台兼容性,直白反引号风格的字 面表示中的回车符(Unicode码点为0x0D) 将被忽略掉。 字符串类型的零值在代码里用 ""或``表示。 基本数值类型字面量的适用范围 一个数值型的字面量只有在不需要0 码力 | 591 页 | 21.40 MB | 1 年前3
 3.云原生边云协同AI框架实践边云协同AI框架 第二部分 首个分布式协同AI开源项目Sedna 基于KubeEdge提供的边云协同能力,支持现有AI类应用无缝下沉到边缘 为分布式协同机器学习服务 ✓ 降低构建与部署成本 ✓ 提升模型性能 ✓ 保护数据隐私 SIG成员近年发表分 布式协同AI顶会论文 10+ SIG成员在AI顶会IJCAI 上分享分布式协同AI论文 Sedna斩获中国信通院云边协 同应用创新大赛最佳创新奖 数据集管理 ✓ 模型管理 ✓ …… 基础框架 ✓ 协同推理 ✓ 增量学习 ✓ 联邦学习 ✓ 终身学习 训练推理框架 ✓ 主流AI框架 ✓ 模块算法 ✓ 可扩展算法接口 ✓ …… 兼容性 项目地址:https://github.com/kubeedge/sedna 开源分布式协同AI框架KubeEdge-Sedna 1. GlobalCoordinator ⚫ 统一边云协同AI任务管理 Model Hard example mining Edge 3 App Shallow Model Hard example mining 边云协同推理: 边侧资源受限条件下,提升整体推理性能 EdgeNode 2 Sedna LC Cloud Edge Sedna GM EdgeNode 1 Feature Extraction Sedna LC Sedna0 码力 | 37 页 | 2.36 MB | 1 年前3 3.云原生边云协同AI框架实践边云协同AI框架 第二部分 首个分布式协同AI开源项目Sedna 基于KubeEdge提供的边云协同能力,支持现有AI类应用无缝下沉到边缘 为分布式协同机器学习服务 ✓ 降低构建与部署成本 ✓ 提升模型性能 ✓ 保护数据隐私 SIG成员近年发表分 布式协同AI顶会论文 10+ SIG成员在AI顶会IJCAI 上分享分布式协同AI论文 Sedna斩获中国信通院云边协 同应用创新大赛最佳创新奖 数据集管理 ✓ 模型管理 ✓ …… 基础框架 ✓ 协同推理 ✓ 增量学习 ✓ 联邦学习 ✓ 终身学习 训练推理框架 ✓ 主流AI框架 ✓ 模块算法 ✓ 可扩展算法接口 ✓ …… 兼容性 项目地址:https://github.com/kubeedge/sedna 开源分布式协同AI框架KubeEdge-Sedna 1. GlobalCoordinator ⚫ 统一边云协同AI任务管理 Model Hard example mining Edge 3 App Shallow Model Hard example mining 边云协同推理: 边侧资源受限条件下,提升整体推理性能 EdgeNode 2 Sedna LC Cloud Edge Sedna GM EdgeNode 1 Feature Extraction Sedna LC Sedna0 码力 | 37 页 | 2.36 MB | 1 年前3
 1.每秒百万数据点 Go 应用监控系统演进WAL(Write-Ahead Log) ● 扩容/维护时可能容易崩溃 ○ vmstorage 没有服务自动发现 ● 兼容性需要关注 ○ MetricsQL 与 PromQL 有差异 总结与展望 第五部分 2023 关键成果 ● 查询性能大幅提升,用户体验好 ● 稳定性大幅提升,几乎没有 OOM ● 资源成本得到降低,至少降低 30% 的成本 2024 优化方向 ● 成本优化 ○ 使用0 码力 | 42 页 | 2.32 MB | 1 年前3 1.每秒百万数据点 Go 应用监控系统演进WAL(Write-Ahead Log) ● 扩容/维护时可能容易崩溃 ○ vmstorage 没有服务自动发现 ● 兼容性需要关注 ○ MetricsQL 与 PromQL 有差异 总结与展望 第五部分 2023 关键成果 ● 查询性能大幅提升,用户体验好 ● 稳定性大幅提升,几乎没有 OOM ● 资源成本得到降低,至少降低 30% 的成本 2024 优化方向 ● 成本优化 ○ 使用0 码力 | 42 页 | 2.32 MB | 1 年前3
 如何向Go官方提交代码-蒙卓builder 维护者 目录 1. 为啥参与Go开发 2. 如何提交CL 3. 交流技巧 4. 参考资料 为啥参与Go开发? 解决BUG 4000+ issue 2510 TODO typo 提升性能 2400%增速 ~50%减少内存 增长知识 runtime 垃圾回收 编译器 HTTP3 密码学…. 为啥参与Go开发? 没准……还可以去美国玩一圈 感谢Ben Shi 大佬引荐 -- 困难 4. release-blocker -- 地狱 CL类型 如何提交CL 1. typo 2. 新特性 a. 新API、新语法,不能破坏兼容性 b. 性能提升,太少的基本会被打回 c. 新硬件指令需要真实环境 3. bug a. 所有平台都没有问题 b. 不能引起其他bug CL类型要求 CL举例 CL举例 CL举例 CL举例0 码力 | 38 页 | 5.95 MB | 1 年前3 如何向Go官方提交代码-蒙卓builder 维护者 目录 1. 为啥参与Go开发 2. 如何提交CL 3. 交流技巧 4. 参考资料 为啥参与Go开发? 解决BUG 4000+ issue 2510 TODO typo 提升性能 2400%增速 ~50%减少内存 增长知识 runtime 垃圾回收 编译器 HTTP3 密码学…. 为啥参与Go开发? 没准……还可以去美国玩一圈 感谢Ben Shi 大佬引荐 -- 困难 4. release-blocker -- 地狱 CL类型 如何提交CL 1. typo 2. 新特性 a. 新API、新语法,不能破坏兼容性 b. 性能提升,太少的基本会被打回 c. 新硬件指令需要真实环境 3. bug a. 所有平台都没有问题 b. 不能引起其他bug CL类型要求 CL举例 CL举例 CL举例 CL举例0 码力 | 38 页 | 5.95 MB | 1 年前3
 Hello 算法 1.0.0b4 Golang版权衡时间与空间 理想情况下,我们希望算法的时间复杂度和空间复杂度都能达到最优。然而在实际情况中,同时优化时间复 杂度和空间复杂度通常是非常困难的。 降低时间复杂度通常需要以提升空间复杂度为代价,反之亦然。我们将牺牲内存空间来提升算法运行速度的 思路称为“以空间换时间”;反之,则称为“以时间换空间”。 选择哪种思路取决于我们更看重哪个方面。在大多数情况下,时间比空间更宝贵,因此以空间换时间通常是 ±0 次正规数 (−1)S × 2−126 × (0.N) 1, 2, … , 254 正规数 正规数 (−1)S × 2(E−127) × (1.N) 255 ±∞ NaN 特别地,次正规数显著提升了浮点数的精度,这是因为: ‧ 最小正正规数为 2−126 ≈ 1.18 × 10−38 。 ‧ 最小正次正规数为 2−126 × 2−23 ≈ 1.4 × 10−45 。 双精度 double 从存储空间的角度看,使用 UTF‑8 表示英文字符非常高效,因为它仅需 1 个字节;使用 UTF‑16 编码某些非 英文字符(例如中文)会更加高效,因为它只需要 2 个字节,而 UTF‑8 可能需要 3 个字节。从兼容性的角度 看,UTF‑8 的通用性最佳,许多工具和库都优先支持 UTF‑8 。 3. 数据结构 hello‑algo.com 49 3.4.5. 编程语言的字符编码 对于以往的大多数编程语言,程序运行中的字符串都采用0 码力 | 347 页 | 27.40 MB | 1 年前3 Hello 算法 1.0.0b4 Golang版权衡时间与空间 理想情况下,我们希望算法的时间复杂度和空间复杂度都能达到最优。然而在实际情况中,同时优化时间复 杂度和空间复杂度通常是非常困难的。 降低时间复杂度通常需要以提升空间复杂度为代价,反之亦然。我们将牺牲内存空间来提升算法运行速度的 思路称为“以空间换时间”;反之,则称为“以时间换空间”。 选择哪种思路取决于我们更看重哪个方面。在大多数情况下,时间比空间更宝贵,因此以空间换时间通常是 ±0 次正规数 (−1)S × 2−126 × (0.N) 1, 2, … , 254 正规数 正规数 (−1)S × 2(E−127) × (1.N) 255 ±∞ NaN 特别地,次正规数显著提升了浮点数的精度,这是因为: ‧ 最小正正规数为 2−126 ≈ 1.18 × 10−38 。 ‧ 最小正次正规数为 2−126 × 2−23 ≈ 1.4 × 10−45 。 双精度 double 从存储空间的角度看,使用 UTF‑8 表示英文字符非常高效,因为它仅需 1 个字节;使用 UTF‑16 编码某些非 英文字符(例如中文)会更加高效,因为它只需要 2 个字节,而 UTF‑8 可能需要 3 个字节。从兼容性的角度 看,UTF‑8 的通用性最佳,许多工具和库都优先支持 UTF‑8 。 3. 数据结构 hello‑algo.com 49 3.4.5. 编程语言的字符编码 对于以往的大多数编程语言,程序运行中的字符串都采用0 码力 | 347 页 | 27.40 MB | 1 年前3
 Hello 算法 1.0.0b5 Golang版hello‑algo.com 13 ‧ 数据操作尽可能快速,涵盖数据访问、添加、删除、更新等。 ‧ 提供简洁的数据表示和逻辑信息,以便使得算法高效运行。 数据结构设计是一个充满权衡的过程。如果想要在某方面取得提升,往往需要在另一方面作出妥协。下面举 两个例子。 ‧ 链表相较于数组,在数据添加和删除操作上更加便捷,但牺牲了数据访问速度。 ‧ 图相较于链表,提供了更丰富的逻辑信息,但需要占用更大的内存空间。 能达到最优。然而在实际情况中,同时优化时间复 杂度和空间复杂度通常是非常困难的。 第 2 章 复杂度分析 hello‑algo.com 47 降低时间复杂度通常需要以提升空间复杂度为代价,反之亦然。我们将牺牲内存空间来提升算法运行速度的 思路称为“以空间换时间”;反之,则称为“以时间换空间”。 选择哪种思路取决于我们更看重哪个方面。在大多数情况下,时间比空间更宝贵,因此“以空间换时间”通 次正规数 (−1)S × 2−126 × (0.N) 1, 2, … , 254 正规数 正规数 (−1)S × 2(E−127) × (1.N) 255 ±∞ NaN 值得说明的是,次正规数显著提升了浮点数的精度。最小正正规数为 2−126 ,最小正次正规数为 2−126×2−23 。 双精度 double 也采用类似 float 的表示方法,在此不做赘述。 第 3 章 数据结构 hello‑algo0 码力 | 379 页 | 30.70 MB | 1 年前3 Hello 算法 1.0.0b5 Golang版hello‑algo.com 13 ‧ 数据操作尽可能快速,涵盖数据访问、添加、删除、更新等。 ‧ 提供简洁的数据表示和逻辑信息,以便使得算法高效运行。 数据结构设计是一个充满权衡的过程。如果想要在某方面取得提升,往往需要在另一方面作出妥协。下面举 两个例子。 ‧ 链表相较于数组,在数据添加和删除操作上更加便捷,但牺牲了数据访问速度。 ‧ 图相较于链表,提供了更丰富的逻辑信息,但需要占用更大的内存空间。 能达到最优。然而在实际情况中,同时优化时间复 杂度和空间复杂度通常是非常困难的。 第 2 章 复杂度分析 hello‑algo.com 47 降低时间复杂度通常需要以提升空间复杂度为代价,反之亦然。我们将牺牲内存空间来提升算法运行速度的 思路称为“以空间换时间”;反之,则称为“以时间换空间”。 选择哪种思路取决于我们更看重哪个方面。在大多数情况下,时间比空间更宝贵,因此“以空间换时间”通 次正规数 (−1)S × 2−126 × (0.N) 1, 2, … , 254 正规数 正规数 (−1)S × 2(E−127) × (1.N) 255 ±∞ NaN 值得说明的是,次正规数显著提升了浮点数的精度。最小正正规数为 2−126 ,最小正次正规数为 2−126×2−23 。 双精度 double 也采用类似 float 的表示方法,在此不做赘述。 第 3 章 数据结构 hello‑algo0 码力 | 379 页 | 30.70 MB | 1 年前3
 5.cgo 原理解析及优化实践自己处理,如 Go 运行产生的 SEGV ③ 如果不是,转发为原来的 sighandler 信号触发 sighandler 时 sighandler 是进程级别的 10x 优化 MoE 整体提升 8% 快了 10 倍 优化前 ~1600ns,优化后 ~140ns (每次 c=>go) https://github.com/golang/go/issues/51676 https://go-review extraM 不好搞 • pthread_key_create(&pthread_g, pthread_key_destructor) • crosscall2 是手写 Plan9 的汇编函数 • 兼容性处理:十来个 CPU,好几个 OS • 搞懂混合编译:Go,ASM ,C dropm 的判断条件 1. 有些操作系统,比如 Windows,不支持 pthread 来注册 destructor0 码力 | 45 页 | 5.74 MB | 1 年前3 5.cgo 原理解析及优化实践自己处理,如 Go 运行产生的 SEGV ③ 如果不是,转发为原来的 sighandler 信号触发 sighandler 时 sighandler 是进程级别的 10x 优化 MoE 整体提升 8% 快了 10 倍 优化前 ~1600ns,优化后 ~140ns (每次 c=>go) https://github.com/golang/go/issues/51676 https://go-review extraM 不好搞 • pthread_key_create(&pthread_g, pthread_key_destructor) • crosscall2 是手写 Plan9 的汇编函数 • 兼容性处理:十来个 CPU,好几个 OS • 搞懂混合编译:Go,ASM ,C dropm 的判断条件 1. 有些操作系统,比如 Windows,不支持 pthread 来注册 destructor0 码力 | 45 页 | 5.74 MB | 1 年前3
 Hello 算法 1.1.0 Go版hello‑algo.com 14 ‧ 数据操作尽可能快速,涵盖数据访问、添加、删除、更新等。 ‧ 提供简洁的数据表示和逻辑信息,以便算法高效运行。 数据结构设计是一个充满权衡的过程。如果想在某方面取得提升,往往需要在另一方面作出妥协。下面举两 个例子。 ‧ 链表相较于数组,在数据添加和删除操作上更加便捷,但牺牲了数据访问速度。 ‧ 图相较于链表,提供了更丰富的逻辑信息,但需要占用更大的内存空间。 度都能达到最优。然而在实际情况中,同时优化时间复 杂度和空间复杂度通常非常困难。 第 2 章 复杂度分析 hello‑algo.com 49 降低时间复杂度通常需要以提升空间复杂度为代价,反之亦然。我们将牺牲内存空间来提升算法运行速度的 思路称为“以空间换时间”;反之,则称为“以时间换空间”。 选择哪种思路取决于我们更看重哪个方面。在大多数情况下,时间比空间更宝贵,因此“以空间换时间”通 次正规数 (−1)S × 2−126 × (0.N) 1, 2, … , 254 正规数 正规数 (−1)S × 2(E−127) × (1.N) 255 ±∞ NaN 值得说明的是,次正规数显著提升了浮点数的精度。最小正正规数为 2−126 ,最小正次正规数为 2−126×2−23 。 双精度 double 也采用类似于 float 的表示方法,在此不做赘述。 第 3 章 数据结构 hello‑algo0 码力 | 383 页 | 18.48 MB | 1 年前3 Hello 算法 1.1.0 Go版hello‑algo.com 14 ‧ 数据操作尽可能快速,涵盖数据访问、添加、删除、更新等。 ‧ 提供简洁的数据表示和逻辑信息,以便算法高效运行。 数据结构设计是一个充满权衡的过程。如果想在某方面取得提升,往往需要在另一方面作出妥协。下面举两 个例子。 ‧ 链表相较于数组,在数据添加和删除操作上更加便捷,但牺牲了数据访问速度。 ‧ 图相较于链表,提供了更丰富的逻辑信息,但需要占用更大的内存空间。 度都能达到最优。然而在实际情况中,同时优化时间复 杂度和空间复杂度通常非常困难。 第 2 章 复杂度分析 hello‑algo.com 49 降低时间复杂度通常需要以提升空间复杂度为代价,反之亦然。我们将牺牲内存空间来提升算法运行速度的 思路称为“以空间换时间”;反之,则称为“以时间换空间”。 选择哪种思路取决于我们更看重哪个方面。在大多数情况下,时间比空间更宝贵,因此“以空间换时间”通 次正规数 (−1)S × 2−126 × (0.N) 1, 2, … , 254 正规数 正规数 (−1)S × 2(E−127) × (1.N) 255 ±∞ NaN 值得说明的是,次正规数显著提升了浮点数的精度。最小正正规数为 2−126 ,最小正次正规数为 2−126×2−23 。 双精度 double 也采用类似于 float 的表示方法,在此不做赘述。 第 3 章 数据结构 hello‑algo0 码力 | 383 页 | 18.48 MB | 1 年前3
共 39 条
- 1
- 2
- 3
- 4














