 Golang 101(Go语言101 中文版)  v1.21.a第21章:通道 - Go特色的并发同步方式 第22章:方法 第23章:接口 - 通过包裹不同具体类型的非接口值来实现反射和多态 第24章:类型内嵌 - 不同于继承的类型扩展方式 第25章:非类型安全指针 第26章:泛型 - 如何使用和解读组合类型 第27章:反射 - reflect标准库包中提供的反射支持 一些专题 第28章:代码断行规则 第29章:更多关于延迟函数调用的知识点 第30章:一些恐慌/恢复用例 第46章:一些简单的总结 第47章:关于Go中的nil 第48章:类型转换、赋值和值比较规则大全 第49章:Go中的一些语法/语义例外 第50章:Go细节101 第51章:Go问答101 第52章:Go技巧101 第53章:更多关于Go的知识 本书由老貘历时三年写成。目前本书仍在不断改进和增容中。你的赞赏是本书和 Go101.org网站不断增容和维护的动力。 赞赏 (请搜索关注微信公众号“Go ShuMin、 Bai Kai、 modood、 xmwilldo、 TheChalice和zonesan等。 第1章:致谢 7 特别感谢白凯同学帮助我翻译了《细节101》、《问答101》和《技巧101》三篇文 章。 我很抱歉如果上述列表遗漏了某个曾经给予我帮助的成员。 Go社区有如此多友善和 富有创造性的成员,以至于上述列表肯定遗漏了某些成员。 感谢所有曾经直接或者 间接,有意或者无意帮助过我完成这本书的Go社区成员。0 码力 | 591 页 | 21.40 MB | 1 年前3 Golang 101(Go语言101 中文版)  v1.21.a第21章:通道 - Go特色的并发同步方式 第22章:方法 第23章:接口 - 通过包裹不同具体类型的非接口值来实现反射和多态 第24章:类型内嵌 - 不同于继承的类型扩展方式 第25章:非类型安全指针 第26章:泛型 - 如何使用和解读组合类型 第27章:反射 - reflect标准库包中提供的反射支持 一些专题 第28章:代码断行规则 第29章:更多关于延迟函数调用的知识点 第30章:一些恐慌/恢复用例 第46章:一些简单的总结 第47章:关于Go中的nil 第48章:类型转换、赋值和值比较规则大全 第49章:Go中的一些语法/语义例外 第50章:Go细节101 第51章:Go问答101 第52章:Go技巧101 第53章:更多关于Go的知识 本书由老貘历时三年写成。目前本书仍在不断改进和增容中。你的赞赏是本书和 Go101.org网站不断增容和维护的动力。 赞赏 (请搜索关注微信公众号“Go ShuMin、 Bai Kai、 modood、 xmwilldo、 TheChalice和zonesan等。 第1章:致谢 7 特别感谢白凯同学帮助我翻译了《细节101》、《问答101》和《技巧101》三篇文 章。 我很抱歉如果上述列表遗漏了某个曾经给予我帮助的成员。 Go社区有如此多友善和 富有创造性的成员,以至于上述列表肯定遗漏了某些成员。 感谢所有曾经直接或者 间接,有意或者无意帮助过我完成这本书的Go社区成员。0 码力 | 591 页 | 21.40 MB | 1 年前3
 Golang 101(Go语言101 中文版)  v1.21.a函数类型和函数值,以及变长参数个数函数 第21章:通道 - Go特色的并发同步方式 第22章:方法 第23章:接口 - 通过包裹不同具体类型的非接口值来实现反射和多态 第24章:类型内嵌 - 不同于继承的类型扩展方式 第25章:非类型安全指针 第26章:泛型 - 如何使用和解读组合类型 第27章:反射 - reflect标准库包中提供的反射支持 一些专题 第28章:代码断行规则 第29章:更多关于延迟函数调用的知识点 第30章:一些恐慌/恢复用例 第46章:一些简单的总结 第47章:关于Go中的nil 第48章:类型转换、赋值和值比较规则大全 第49章:Go中的一些语法/语义例外 第50章:Go细节101 第51章:Go问答101 第52章:Go技巧101 第53章:更多关于Go的知识 本书由老貘 历时三年写成。目前本书仍在不断改进和增容中。你的赞赏是本 书和Go101.org网站不断增容和维护的动力。 (请搜索关注微信公众号“Go ZhaoYan、 Li ShuMin、 Bai Kai、 modood、 xmwilldo、 TheChalice和zonesan等。 特别感谢白凯同学帮助我翻译了《细节101》、《问答101》和《技巧101》三篇 文章。 我很抱歉如果上述列表遗漏了某个曾经给予我帮助的成员。 Go社区有如此多友 善和富有创造性的成员,以至于上述列表肯定遗漏了某些成员。 感谢所有曾经 直接或者间接,有意或者无意帮助过我完成这本书的Go社区成员。0 码力 | 608 页 | 1.08 MB | 1 年前3 Golang 101(Go语言101 中文版)  v1.21.a函数类型和函数值,以及变长参数个数函数 第21章:通道 - Go特色的并发同步方式 第22章:方法 第23章:接口 - 通过包裹不同具体类型的非接口值来实现反射和多态 第24章:类型内嵌 - 不同于继承的类型扩展方式 第25章:非类型安全指针 第26章:泛型 - 如何使用和解读组合类型 第27章:反射 - reflect标准库包中提供的反射支持 一些专题 第28章:代码断行规则 第29章:更多关于延迟函数调用的知识点 第30章:一些恐慌/恢复用例 第46章:一些简单的总结 第47章:关于Go中的nil 第48章:类型转换、赋值和值比较规则大全 第49章:Go中的一些语法/语义例外 第50章:Go细节101 第51章:Go问答101 第52章:Go技巧101 第53章:更多关于Go的知识 本书由老貘 历时三年写成。目前本书仍在不断改进和增容中。你的赞赏是本 书和Go101.org网站不断增容和维护的动力。 (请搜索关注微信公众号“Go ZhaoYan、 Li ShuMin、 Bai Kai、 modood、 xmwilldo、 TheChalice和zonesan等。 特别感谢白凯同学帮助我翻译了《细节101》、《问答101》和《技巧101》三篇 文章。 我很抱歉如果上述列表遗漏了某个曾经给予我帮助的成员。 Go社区有如此多友 善和富有创造性的成员,以至于上述列表肯定遗漏了某些成员。 感谢所有曾经 直接或者间接,有意或者无意帮助过我完成这本书的Go社区成员。0 码力 | 608 页 | 1.08 MB | 1 年前3
 Golang 101(Go语言101 中文版)  v1.21.a第21章:通道 - Go特色的并发同步方式 第22章:方法 第23章:接口 - 通过包裹不同具体类型的非接口值来实现反射和多态 第24章:类型内嵌 - 不同于继承的类型扩展方式 第25章:非类型安全指针 第26章:泛型 - 如何使用和解读组合类型 第27章:反射 - reflect标准库包中提供的反射支持 一些专题 第28章:代码断行规则 第29章:更多关于延迟函数调用的知识点 第30章:一些恐慌/恢复用例 第46章:一些简单的总结 第47章:关于Go中的nil 第48章:类型转换、赋值和值比较规则大全 第49章:Go中的一些语法/语义例外 第50章:Go细节101 第51章:Go问答101 第52章:Go技巧101 第53章:更多关于Go的知识 本书由老貘 ? 历时三年写成。目前本书仍在不断改进和增容中。你的赞赏是 本书和Go101.org网站不断增容和维护的动力。 赞赏 (请搜索关注微信公众号“Go ZhaoYan、 Li ShuMin、 Bai Kai、 modood、 xmwilldo、 TheChalice和zonesan等。 特别感谢白凯同学帮助我翻译了《细节101》、《问答101》和《技巧101》三 篇文章。 我很抱歉如果上述列表遗漏了某个曾经给予我帮助的成员。 Go社区有如此多 友善和富有创造性的成员,以至于上述列表肯定遗漏了某些成员。 感谢所有 曾经直接或者间接,有意或者无意帮助过我完成这本书的Go社区成员。0 码力 | 821 页 | 956.82 KB | 1 年前3 Golang 101(Go语言101 中文版)  v1.21.a第21章:通道 - Go特色的并发同步方式 第22章:方法 第23章:接口 - 通过包裹不同具体类型的非接口值来实现反射和多态 第24章:类型内嵌 - 不同于继承的类型扩展方式 第25章:非类型安全指针 第26章:泛型 - 如何使用和解读组合类型 第27章:反射 - reflect标准库包中提供的反射支持 一些专题 第28章:代码断行规则 第29章:更多关于延迟函数调用的知识点 第30章:一些恐慌/恢复用例 第46章:一些简单的总结 第47章:关于Go中的nil 第48章:类型转换、赋值和值比较规则大全 第49章:Go中的一些语法/语义例外 第50章:Go细节101 第51章:Go问答101 第52章:Go技巧101 第53章:更多关于Go的知识 本书由老貘 ? 历时三年写成。目前本书仍在不断改进和增容中。你的赞赏是 本书和Go101.org网站不断增容和维护的动力。 赞赏 (请搜索关注微信公众号“Go ZhaoYan、 Li ShuMin、 Bai Kai、 modood、 xmwilldo、 TheChalice和zonesan等。 特别感谢白凯同学帮助我翻译了《细节101》、《问答101》和《技巧101》三 篇文章。 我很抱歉如果上述列表遗漏了某个曾经给予我帮助的成员。 Go社区有如此多 友善和富有创造性的成员,以至于上述列表肯定遗漏了某些成员。 感谢所有 曾经直接或者间接,有意或者无意帮助过我完成这本书的Go社区成员。0 码力 | 821 页 | 956.82 KB | 1 年前3
 03. Golang 在隐私计算平台建设中的实践 - 刘敬golang 在隐私计算平台建设中的实践 刘敬 杭州趣链科技有限公司 2021-10 ⽬目录 隐私计算介绍 01 隐私计算平台架构 02 构建隐私计算算法框架的实践 03 ⼀一些优化技巧 04 01 隐私计算介绍 趣链科技版权所有©2016 – 2021 4 隐私计算概念 隐私计算(Privacy preserving computation)是指在保证数据提供⽅方不不泄露露原始 人数据保护的重要地位。 国内外纷纷出台了了围绕数据使⽤用和保护的公共政策 2021年年6⽉月10⽇日,《中华⼈人⺠民共和国数据安全法》在⼗十三届全国⼈人⼤大常委会正式颁布。 明确指出坚持安全与发展并重,锁定⽀支持促进数据安全与发展的措施;建⽴立保障政务数 据安全和推动政务数据开放的制度措施。该法⾃自2021年年9⽉月1⽇日起施⾏行行。 2021年年8⽉月20⽇日,⼗十三届全国⼈人⼤大常委 出了了隐私计算+区 块链,并达成业内 共识 趣链科技版权所有©2016 – 2021 7 隐私计算技术分类 • 安全多⽅方计算 纯密码学技术实现数据的可 ⽤用不不可⻅见 • 可信执⾏行行环境 基于TEE硬件保障计算环境安全 可信,提供计算模型及数据双维 度安全 • 联邦学习 结合机器器学习和密码学算 法,数据联邦化训练,充 分释放数据价值 02 隐私计算平台 架构 趣链科技版权所有©20160 码力 | 37 页 | 6.20 MB | 1 年前3 03. Golang 在隐私计算平台建设中的实践 - 刘敬golang 在隐私计算平台建设中的实践 刘敬 杭州趣链科技有限公司 2021-10 ⽬目录 隐私计算介绍 01 隐私计算平台架构 02 构建隐私计算算法框架的实践 03 ⼀一些优化技巧 04 01 隐私计算介绍 趣链科技版权所有©2016 – 2021 4 隐私计算概念 隐私计算(Privacy preserving computation)是指在保证数据提供⽅方不不泄露露原始 人数据保护的重要地位。 国内外纷纷出台了了围绕数据使⽤用和保护的公共政策 2021年年6⽉月10⽇日,《中华⼈人⺠民共和国数据安全法》在⼗十三届全国⼈人⼤大常委会正式颁布。 明确指出坚持安全与发展并重,锁定⽀支持促进数据安全与发展的措施;建⽴立保障政务数 据安全和推动政务数据开放的制度措施。该法⾃自2021年年9⽉月1⽇日起施⾏行行。 2021年年8⽉月20⽇日,⼗十三届全国⼈人⼤大常委 出了了隐私计算+区 块链,并达成业内 共识 趣链科技版权所有©2016 – 2021 7 隐私计算技术分类 • 安全多⽅方计算 纯密码学技术实现数据的可 ⽤用不不可⻅见 • 可信执⾏行行环境 基于TEE硬件保障计算环境安全 可信,提供计算模型及数据双维 度安全 • 联邦学习 结合机器器学习和密码学算 法,数据联邦化训练,充 分释放数据价值 02 隐私计算平台 架构 趣链科技版权所有©20160 码力 | 37 页 | 6.20 MB | 1 年前3
 Hello 算法 1.1.0 Go版出以下计数简化技巧。 1. 忽略 ?(?) 中的常数项。因为它们都与 ? 无关,所以对时间复杂度不产生影响。 2. 省略所有系数。例如,循环 2? 次、5? + 1 次等,都可以简化记为 ? 次,因为 ? 前面的系数对时间复 杂度没有影响。 3. 循环嵌套时使用乘法。总操作数量等于外层循环和内层循环操作数量之积,每一层循环依然可以分别 套用第 1. 点和第 2. 点的技巧。 给定一个函数,我们可以用上述技巧来统计操作数量: 给定一个函数,我们可以用上述技巧来统计操作数量: func algorithm(n int) { a := 1 // +0(技巧 1) a = a + n // +0(技巧 1) // +n(技巧 2) for i := 0; i < 5 * n + 1; i++ { fmt.Println(0) 第 2 章 复杂度分析 hello‑algo.com 32 } // +n*n(技巧 3) for for i := 0; i < 2 * n; i++ { for j := 0; j < n + 1; j++ { fmt.Println(0) } } } 以下公式展示了使用上述技巧前后的统计结果,两者推算出的时间复杂度都为 ?(?2) 。 ?(?) = 2?(? + 1) + (5? + 1) + 2 完整统计 (‑.‑|||) = 2?2 + 7? + 3 ?(?) = ?2 +0 码力 | 383 页 | 18.48 MB | 1 年前3 Hello 算法 1.1.0 Go版出以下计数简化技巧。 1. 忽略 ?(?) 中的常数项。因为它们都与 ? 无关,所以对时间复杂度不产生影响。 2. 省略所有系数。例如,循环 2? 次、5? + 1 次等,都可以简化记为 ? 次,因为 ? 前面的系数对时间复 杂度没有影响。 3. 循环嵌套时使用乘法。总操作数量等于外层循环和内层循环操作数量之积,每一层循环依然可以分别 套用第 1. 点和第 2. 点的技巧。 给定一个函数,我们可以用上述技巧来统计操作数量: 给定一个函数,我们可以用上述技巧来统计操作数量: func algorithm(n int) { a := 1 // +0(技巧 1) a = a + n // +0(技巧 1) // +n(技巧 2) for i := 0; i < 5 * n + 1; i++ { fmt.Println(0) 第 2 章 复杂度分析 hello‑algo.com 32 } // +n*n(技巧 3) for for i := 0; i < 2 * n; i++ { for j := 0; j < n + 1; j++ { fmt.Println(0) } } } 以下公式展示了使用上述技巧前后的统计结果,两者推算出的时间复杂度都为 ?(?2) 。 ?(?) = 2?(? + 1) + (5? + 1) + 2 完整统计 (‑.‑|||) = 2?2 + 7? + 3 ?(?) = ?2 +0 码力 | 383 页 | 18.48 MB | 1 年前3
 Hello 算法 1.0.0 Golang版出以下计数简化技巧。 1. 忽略 ?(?) 中的常数项。因为它们都与 ? 无关,所以对时间复杂度不产生影响。 2. 省略所有系数。例如,循环 2? 次、5? + 1 次等,都可以简化记为 ? 次,因为 ? 前面的系数对时间复 杂度没有影响。 3. 循环嵌套时使用乘法。总操作数量等于外层循环和内层循环操作数量之积,每一层循环依然可以分别 套用第 1. 点和第 2. 点的技巧。 给定一个函数,我们可以用上述技巧来统计操作数量: 给定一个函数,我们可以用上述技巧来统计操作数量: func algorithm(n int) { a := 1 // +0(技巧 1) a = a + n // +0(技巧 1) // +n(技巧 2) for i := 0; i < 5 * n + 1; i++ { fmt.Println(0) 第 2 章 复杂度分析 hello‑algo.com 32 } // +n*n(技巧 3) for for i := 0; i < 2 * n; i++ { for j := 0; j < n + 1; j++ { fmt.Println(0) } } } 以下公式展示了使用上述技巧前后的统计结果,两者推算出的时间复杂度都为 ?(?2) 。 ?(?) = 2?(? + 1) + (5? + 1) + 2 完整统计 (‑.‑|||) = 2?2 + 7? + 3 ?(?) = ?2 +0 码力 | 382 页 | 17.60 MB | 1 年前3 Hello 算法 1.0.0 Golang版出以下计数简化技巧。 1. 忽略 ?(?) 中的常数项。因为它们都与 ? 无关,所以对时间复杂度不产生影响。 2. 省略所有系数。例如,循环 2? 次、5? + 1 次等,都可以简化记为 ? 次,因为 ? 前面的系数对时间复 杂度没有影响。 3. 循环嵌套时使用乘法。总操作数量等于外层循环和内层循环操作数量之积,每一层循环依然可以分别 套用第 1. 点和第 2. 点的技巧。 给定一个函数,我们可以用上述技巧来统计操作数量: 给定一个函数,我们可以用上述技巧来统计操作数量: func algorithm(n int) { a := 1 // +0(技巧 1) a = a + n // +0(技巧 1) // +n(技巧 2) for i := 0; i < 5 * n + 1; i++ { fmt.Println(0) 第 2 章 复杂度分析 hello‑algo.com 32 } // +n*n(技巧 3) for for i := 0; i < 2 * n; i++ { for j := 0; j < n + 1; j++ { fmt.Println(0) } } } 以下公式展示了使用上述技巧前后的统计结果,两者推算出的时间复杂度都为 ?(?2) 。 ?(?) = 2?(? + 1) + (5? + 1) + 2 完整统计 (‑.‑|||) = 2?2 + 7? + 3 ?(?) = ?2 +0 码力 | 382 页 | 17.60 MB | 1 年前3
 Hello 算法 1.0.0b5 Golang版结出以下计数简化技巧。 1. 忽略 ?(?) 中的常数项。因为它们都与 ? 无关,所以对时间复杂度不产生影响。 2. 省略所有系数。例如,循环 2? 次、5? + 1 次等,都可以简化记为 ? 次,因为 ? 前面的系数对时间复 杂度没有影响。 3. 循环嵌套时使用乘法。总操作数量等于外层循环和内层循环操作数量之积,每一层循环依然可以分别 套用第 1. 点和第 2. 点的技巧。 给定一个函数,我们可以用上述技巧来统计操作数量。 给定一个函数,我们可以用上述技巧来统计操作数量。 func algorithm(n int) { a := 1 // +0(技巧 1) a = a + n // +0(技巧 1) // +n(技巧 2) for i := 0; i < 5 * n + 1; i++ { fmt.Println(0) 第 2 章 复杂度分析 hello‑algo.com 30 } // +n*n(技巧 3) for for i := 0; i < 2 * n; i++ { for j := 0; j < n + 1; j++ { fmt.Println(0) } } } 以下公式展示了使用上述技巧前后的统计结果,两者推出的时间复杂度都为 ?(?2) 。 ?(?) = 2?(? + 1) + (5? + 1) + 2 完整统计 (‑.‑|||) = 2?2 + 7? + 3 ?(?) = ?2 +0 码力 | 379 页 | 30.70 MB | 1 年前3 Hello 算法 1.0.0b5 Golang版结出以下计数简化技巧。 1. 忽略 ?(?) 中的常数项。因为它们都与 ? 无关,所以对时间复杂度不产生影响。 2. 省略所有系数。例如,循环 2? 次、5? + 1 次等,都可以简化记为 ? 次,因为 ? 前面的系数对时间复 杂度没有影响。 3. 循环嵌套时使用乘法。总操作数量等于外层循环和内层循环操作数量之积,每一层循环依然可以分别 套用第 1. 点和第 2. 点的技巧。 给定一个函数,我们可以用上述技巧来统计操作数量。 给定一个函数,我们可以用上述技巧来统计操作数量。 func algorithm(n int) { a := 1 // +0(技巧 1) a = a + n // +0(技巧 1) // +n(技巧 2) for i := 0; i < 5 * n + 1; i++ { fmt.Println(0) 第 2 章 复杂度分析 hello‑algo.com 30 } // +n*n(技巧 3) for for i := 0; i < 2 * n; i++ { for j := 0; j < n + 1; j++ { fmt.Println(0) } } } 以下公式展示了使用上述技巧前后的统计结果,两者推出的时间复杂度都为 ?(?2) 。 ?(?) = 2?(? + 1) + (5? + 1) + 2 完整统计 (‑.‑|||) = 2?2 + 7? + 3 ?(?) = ?2 +0 码力 | 379 页 | 30.70 MB | 1 年前3
 Hello 算法 1.2.0 简体中文 Go 版出以下计数简化技巧。 1. 忽略 ?(?) 中的常数项。因为它们都与 ? 无关,所以对时间复杂度不产生影响。 2. 省略所有系数。例如,循环 2? 次、5? + 1 次等,都可以简化记为 ? 次,因为 ? 前面的系数对时间复 杂度没有影响。 3. 循环嵌套时使用乘法。总操作数量等于外层循环和内层循环操作数量之积,每一层循环依然可以分别 套用第 1. 点和第 2. 点的技巧。 给定一个函数,我们可以用上述技巧来统计操作数量: 给定一个函数,我们可以用上述技巧来统计操作数量: func algorithm(n int) { a := 1 // +0(技巧 1) a = a + n // +0(技巧 1) // +n(技巧 2) for i := 0; i < 5 * n + 1; i++ { fmt.Println(0) 第 2 章 复杂度分析 www.hello‑algo.com 32 } // +n*n(技巧 3) for for i := 0; i < 2 * n; i++ { for j := 0; j < n + 1; j++ { fmt.Println(0) } } } 以下公式展示了使用上述技巧前后的统计结果,两者推算出的时间复杂度都为 ?(?2) 。 ?(?) = 2?(? + 1) + (5? + 1) + 2 完整统计 (‑.‑|||) = 2?2 + 7? + 3 ?(?) = ?20 码力 | 384 页 | 18.49 MB | 10 月前3 Hello 算法 1.2.0 简体中文 Go 版出以下计数简化技巧。 1. 忽略 ?(?) 中的常数项。因为它们都与 ? 无关,所以对时间复杂度不产生影响。 2. 省略所有系数。例如,循环 2? 次、5? + 1 次等,都可以简化记为 ? 次,因为 ? 前面的系数对时间复 杂度没有影响。 3. 循环嵌套时使用乘法。总操作数量等于外层循环和内层循环操作数量之积,每一层循环依然可以分别 套用第 1. 点和第 2. 点的技巧。 给定一个函数,我们可以用上述技巧来统计操作数量: 给定一个函数,我们可以用上述技巧来统计操作数量: func algorithm(n int) { a := 1 // +0(技巧 1) a = a + n // +0(技巧 1) // +n(技巧 2) for i := 0; i < 5 * n + 1; i++ { fmt.Println(0) 第 2 章 复杂度分析 www.hello‑algo.com 32 } // +n*n(技巧 3) for for i := 0; i < 2 * n; i++ { for j := 0; j < n + 1; j++ { fmt.Println(0) } } } 以下公式展示了使用上述技巧前后的统计结果,两者推算出的时间复杂度都为 ?(?2) 。 ?(?) = 2?(? + 1) + (5? + 1) + 2 完整统计 (‑.‑|||) = 2?2 + 7? + 3 ?(?) = ?20 码力 | 384 页 | 18.49 MB | 10 月前3
 Hello 算法 1.0.0b4 Golang版结出以下计数简化技巧: 1. 忽略与 ? 无关的操作。因为它们都是 ?(?) 中的常数项,对时间复杂度不产生影响。 2. 省略所有系数。例如,循环 2? 次、5? + 1 次等,都可以简化记为 ? 次,因为 ? 前面的系数对时间复 杂度没有影响。 3. 循环嵌套时使用乘法。总操作数量等于外层循环和内层循环操作数量之积,每一层循环依然可以分别 套用上述 1. 和 2. 技巧。 以下示例展示了使用上述技巧前、后的统计结果。 以下示例展示了使用上述技巧前、后的统计结果。 ?(?) = 2?(? + 1) + (5? + 1) + 2 完整统计 (‑.‑|||) = 2?2 + 7? + 3 ?(?) = ?2 + ? 偷懒统计 (o.O) 最终,两者都能推出相同的时间复杂度结果,即 ?(?2) 。 func algorithm(n int) { a := 1 // +0(技巧 1) a = a + n // +0(技巧 +0(技巧 1) // +n(技巧 2) for i := 0; i < 5 * n + 1; i++ { fmt.Println(0) } // +n*n(技巧 3) for i := 0; i < 2 * n; i++ { for j := 0; j < n + 1; j++ { fmt.Println(0) } } } 第二步:判断渐近上界 时间复杂度由多项式 ?(?) 中最高阶的项来决定。这是因为在0 码力 | 347 页 | 27.40 MB | 1 年前3 Hello 算法 1.0.0b4 Golang版结出以下计数简化技巧: 1. 忽略与 ? 无关的操作。因为它们都是 ?(?) 中的常数项,对时间复杂度不产生影响。 2. 省略所有系数。例如,循环 2? 次、5? + 1 次等,都可以简化记为 ? 次,因为 ? 前面的系数对时间复 杂度没有影响。 3. 循环嵌套时使用乘法。总操作数量等于外层循环和内层循环操作数量之积,每一层循环依然可以分别 套用上述 1. 和 2. 技巧。 以下示例展示了使用上述技巧前、后的统计结果。 以下示例展示了使用上述技巧前、后的统计结果。 ?(?) = 2?(? + 1) + (5? + 1) + 2 完整统计 (‑.‑|||) = 2?2 + 7? + 3 ?(?) = ?2 + ? 偷懒统计 (o.O) 最终,两者都能推出相同的时间复杂度结果,即 ?(?2) 。 func algorithm(n int) { a := 1 // +0(技巧 1) a = a + n // +0(技巧 +0(技巧 1) // +n(技巧 2) for i := 0; i < 5 * n + 1; i++ { fmt.Println(0) } // +n*n(技巧 3) for i := 0; i < 2 * n; i++ { for j := 0; j < n + 1; j++ { fmt.Println(0) } } } 第二步:判断渐近上界 时间复杂度由多项式 ?(?) 中最高阶的项来决定。这是因为在0 码力 | 347 页 | 27.40 MB | 1 年前3
 Go Web编程7.4 模板处理 7.5 文件操作 7.6 字符串处理 7.7 小结 8.Web服务 8.1 Socket编程 8.2 WebSocket 8.3 REST 8.4 RPC 8.5 小结 9.安全与加密 9.1 预防CSRF攻击 9.2 确保输入过滤 9.3 避免XSS攻击 9.4 避免SQL注入 9.5 存储密码 9.6 加密和解密数据 9.7 小结 10.国际化和本地化 10.1 Go完全是垃圾回收型的语言,并为并发执行与通信提供了基本的支持。 按照其设计,Go打算为多核机器上系统软件的构造提供一种方法。 Go是一种编译型语言,它结合了解释型语言的游刃有余,动态类型语言的开发效率,以及静态类型的安全性。它也打 算成为现代的,支持网络与多核计算的语言。要满足这些目标,需要解决一些语言上的问题:一个富有表达能力但轻 量级的类型系统,并发与垃圾回收机制,严格的依赖规范等等。这些无法通过库或工具解决好,因此Go也就应运而生 接下来就开始讲如何安装,下载Sublime 根据自己相应的系统下载相应的版本,然后打开Sublime,对于不熟悉Sublime的同学可以先看一下这篇文章Sublime Text 2 入门及技巧 1. 打开之后安装 Package Control:Ctrl+` 打开命令行,执行如下代码: import urllib2,os; pf='Package Control.sublime-package';0 码力 | 295 页 | 5.91 MB | 1 年前3 Go Web编程7.4 模板处理 7.5 文件操作 7.6 字符串处理 7.7 小结 8.Web服务 8.1 Socket编程 8.2 WebSocket 8.3 REST 8.4 RPC 8.5 小结 9.安全与加密 9.1 预防CSRF攻击 9.2 确保输入过滤 9.3 避免XSS攻击 9.4 避免SQL注入 9.5 存储密码 9.6 加密和解密数据 9.7 小结 10.国际化和本地化 10.1 Go完全是垃圾回收型的语言,并为并发执行与通信提供了基本的支持。 按照其设计,Go打算为多核机器上系统软件的构造提供一种方法。 Go是一种编译型语言,它结合了解释型语言的游刃有余,动态类型语言的开发效率,以及静态类型的安全性。它也打 算成为现代的,支持网络与多核计算的语言。要满足这些目标,需要解决一些语言上的问题:一个富有表达能力但轻 量级的类型系统,并发与垃圾回收机制,严格的依赖规范等等。这些无法通过库或工具解决好,因此Go也就应运而生 接下来就开始讲如何安装,下载Sublime 根据自己相应的系统下载相应的版本,然后打开Sublime,对于不熟悉Sublime的同学可以先看一下这篇文章Sublime Text 2 入门及技巧 1. 打开之后安装 Package Control:Ctrl+` 打开命令行,执行如下代码: import urllib2,os; pf='Package Control.sublime-package';0 码力 | 295 页 | 5.91 MB | 1 年前3
共 42 条
- 1
- 2
- 3
- 4
- 5














 
 