Go 入门指南(The way to Go)上,同 时编程语言的设计思想也已经非常陈旧,这些情况都充分证明了现有的编程语言已不符合时下的生产环 境。尽管硬件在过去的几十年中有了飞速的发展,但人们依旧没有找到机会去改变 C++ 在软件开发的重 要地位,并在实际开发过程中忍受着它所带来的令人头疼的一些问题。因此学者们坐下来总结出了现在生 产环境与软件开发之间的主要矛盾,并尝试设计一门全新的编程语言来解决这些问题。 以下就是他们讨论得出的对编程语言的设计要求: 1e308) int 型是计算最快的一种类型。 整型的零值为 0,浮点型的零值为 0.0。 float32 精确到小数点后 7 位,float64 精确到小数点后 15 位。由于精确度的缘故,你在使用 == 或者 != 来比较浮点数时应当非常小心。你最好在正式使用前测试对于精确度要求较高的运算。 你应该尽可能地使用 float64,因为 math 包中所有有关数学运算的函数都会要求接收这个类型。 本文档使用 看云 构建 格式化浮点型( %f 输出浮点数, %e 输出科学计数表示法), %0d 用于规定输出定长的整数,其中 开头的数字 0 是必须的。 %n.mg 用于表示数字 n 并精确到小数点后 m 位,除了使用 g 之外,还可以使用 e 或者 f,例如:使用 格式化字符串 %5.2e 来输出 3.4 的结果为 3.40e+00 。 数字值转换 当进行类似 a32bitInt0 码力 | 380 页 | 2.97 MB | 1 年前3
Go 入门指南(The way to Go)1e308) int 型是计算最快的一种类型。 整型的零值为 0,浮点型的零值为 0.0。 float32 精确到小数点后 7 位,float64 精确到小数点后 15 位。由于精确度的缘故,你在使用 == 或者 != 来比较浮点数时应当非常小心。你最好在正式使用前测试对于精确度要求较高的运算。 你应该尽可能地使用 float64,因为 math 包中所有有关数学运算的函数都会要求接收这个类型。 %0d 用于规定输出定长的整数,其中开头的数字 0 是必须的。 4.5 基本类型和运算符 - 81 - 本文档使用 书栈(BookStack.CN) 构建 %n.mg 用于表示数字 n 并精确到小数点后 m 位,除了使用 g 之外,还可以使用 e 或者 f,例如:使用格式化 字符串 %5.2e 来输出 3.4 的结果为 3.40e+00 。 数字值转换 当进行类似 a32bitInt %v 来表示复数,但当你希望只表示其中的一个部分的时候需要使用 %f 。 复数支持和其它数字类型一样的运算。当你使用等号 == 或者不等号 != 对复数进行比较运算时,注意对精确 度的把握。 cmath 包中包含了一些操作复数的公共方法。如果你对内存的要求不是特别高,最好使用 complex128 作为计算类型,因为相关函数都使用这个类型的参数。 位运算只能用于整0 码力 | 466 页 | 4.44 MB | 1 年前3
Hello 算法 1.0.0b2 Golang版的同学能够顺利地将地雷逐个排掉,而基础不足的同学很可能被炸的满头是包,并在受挫中步步退缩。通读教 材书籍也是常用方法,但对于面向求职的同学来说,毕业季、投递简历、应付笔面试已经占用大部分精力,厚 重的书本也因此成为巨大的挑战。 如果你也有上述烦恼,那么很幸运这本书找到了你。本书是我对于该问题给出的答案,虽然不一定正确,但至 少代表一次积极的尝试。这本书虽然不足以让你直接拿到 Offer ,但会引导你探索数据结构与算法的“知识地 标题注释,用于标注函数、类、测试样例等 */ // 内容注释,用于详解代码 /** * 多行 * 注释 */ 0.2.3. 在动画图解中高效学习 视频和图片相比于文字的信息密度和结构化程度更高,更容易理解。在本书中,知识重难点会主要以动画、图 解的形式呈现,而文字的作用则是作为动画和图的解释与补充。 阅读本书时,若发现某段内容提供了动画或图解,建议你以图为主线,将文字内容(一般在图的上方)对齐到 图中内容,综合来理解。 换言之,在可以解决问题的前提下,算法效率则是主要评价维度,包括: ‧ 时间效率,即算法的运行速度的快慢。 ‧ 空间效率,即算法占用的内存空间大小。 数据结构与算法追求“运行速度快、占用内存少”,而如何去评价算法效率则是非常重要的问题,因为只有知 道如何评价算法,才能去做算法之间的对比分析,以及优化算法设计。 2.1.2. 效率评估方法 实际测试 假设我们现在有算法 A 和 算法 B ,都能够0 码力 | 202 页 | 15.73 MB | 1 年前3
Hello 算法 1.0.0b1 Golang版的同学能够顺利地将地雷逐个排掉,而基础不足的同学很可能被炸的满头是包,并在受挫中步步退缩。通读教 材书籍也是常用方法,但对于面向求职的同学来说,毕业季、投递简历、应付笔面试已经占用大部分精力,厚 重的书本也因此成为巨大的挑战。 如果你也有上述烦恼,那么很幸运这本书找到了你。本书是我对于该问题给出的答案,虽然不一定正确,但至 少代表一次积极的尝试。这本书虽然不足以让你直接拿到 Offer ,但会引导你探索数据结构与算法的“知识地 标题注释,用于标注函数、类、测试样例等 */ // 内容注释,用于详解代码 /** * 多行 * 注释 */ 0.2.3. 在动画图解中高效学习 视频和图片相比于文字的信息密度和结构化程度更高,更容易理解。在本书中,知识重难点会主要以动画、图 解的形式呈现,而文字的作用则是作为动画和图的解释与补充。 阅读本书时,若发现某段内容提供了动画或图解,建议你以图为主线,将文字内容(一般在图的上方)对齐到 图中内容,综合来理解。 换言之,在可以解决问题的前提下,算法效率则是主要评价维度,包括: ‧ 时间效率,即算法的运行速度的快慢。 ‧ 空间效率,即算法占用的内存空间大小。 数据结构与算法追求“运行速度快、占用内存少”,而如何去评价算法效率则是非常重要的问题,因为只有知 道如何评价算法,才能去做算法之间的对比分析,以及优化算法设计。 2.1.2. 效率评估方法 实际测试 假设我们现在有算法 A 和 算法 B ,都能够0 码力 | 190 页 | 14.71 MB | 1 年前3
Golang 101(Go语言101 中文版) v1.21.a8,使用gc编译的程序在运行时刻已经基本消除了 停顿现象。 gc支持跨平台编译。 比如,我们可以在Linux平台上编译出Windows程序,反之 亦然。 使用Go编写的程序常常编译得非常快。 编译时间的长短是开发愉悦度的一个重 要因素。 编译时间短是很多程序员喜欢Go的一个原因。 Go程序生成的二进制可执行文件常常拥有以下优点: 内存消耗少 执行速度快 启动快 很多C家族语言,比如C/C++/Rust等,也拥有上述的优点。 数值类型。 1+2i 所有复数基本数值类型。 2e+308 无。 注意几个溢出的例子: 字面量0x10000000000000000需要65个比特才能表示,所以在运行时刻,任 何基本整数类型都不能精确表示此字面量。 在 IEEE-754 标 准 中 , 最 大 的 可 以 精 确 表 示 的 float32 类 型 数 值 为 3.40282346638528859811704183484516925440e+38,所以3 43567981e+308,因此2e+308不能表示 任何基本数值类型的值。 尽管0x10000000000000000可以用来表示float32类型的值,但是它不能被任 何float32类型的值所精确表示。上面已经提到了,当使用字面量来表示非 整数基本数值类型的时候,精度丢失是允许的(但溢出是不允许的)。 本书由老貘 历时三年写成。目前本书仍在不断改进和增容中。你的赞赏是本 书和Go101.org网站不断增容和维护的动力。0 码力 | 608 页 | 1.08 MB | 1 年前3
Hello 算法 1.0.0b4 Golang版10.3. 哈希优化策略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 10.4. 重识搜索算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 10.5. 小结 . . . 从本质上讲,计算渐近上界就是寻找一个函数 ?(?) ,使得当 ? 趋向于无穷大时,?(?) 和 ?(?) 处于相同 的增长级别,仅相差一个常数项 ? 的倍数。 2.2.4. 推算方法 渐近上界的数学味儿有点重,如果你感觉没有完全理解,也无需担心。因为在实际使用中,我们只需要掌握 推算方法,数学意义可以逐渐领悟。 2. 复杂度 hello‑algo.com 18 根据定义,确定 ?(?) 之后,我们便可得到时间复杂度 示算法在不同数据 规模下的效率。 时间复杂度 ‧ 时间复杂度用于衡量算法运行时间随数据量增长的趋势,可以有效评估算法效率,但在某些情况下可 能失效,如在输入数据量较小或时间复杂度相同时,无法精确对比算法效率的优劣。 ‧ 最差时间复杂度使用大 ? 符号表示,即函数渐近上界,反映当 ? 趋向正无穷时,?(?) 的增长级别。 ‧ 推算时间复杂度分为两步,首先统计计算操作数量,然后判断渐近上界。0 码力 | 347 页 | 27.40 MB | 1 年前3
Golang 101(Go语言101 中文版) v1.21.a表示,所以在运行时刻, 任何基本整数类型都不能精确表示此字面量。 在IEEE-754标准中,最大的可以精确表示的float32类型数值为 3.40282346638528859811704183484516925440e+38,所以3.5e38不能表示 任何float32和complex64类型的值。 在IEEE-754标准中,最大的可以精确表示的float64类型数值为 1.797693 567981e+308,因此2e+308不能表 示任何基本数值类型的值。 尽管0x10000000000000000可以用来表示float32类型的值,但是它不能被任 何float32类型的值所精确表示。上面已经提到了,当使用字面量来表示非 整数基本数值类型的时候,精度丢失是允许的(但溢出是不允许的)。 本书由老貘 ? 历时三年写成。目前本书仍在不断改进和增容中。你的赞赏是 本书和Go101 以后,如果我们说两个值可以比较,我们的意思是说这两个值可以用==或 者!=运算符来比较。 我们将在以后的文章中,我们将了解到某些类型的值是 不能比较的。 注意,并非所有的实数在内存中都可以被精确地表示,所以比较两个浮点数或 者复数的结果并不是很可靠。 在编程中,我们常常比较两个浮点数的差值是 否小于一个阙值来检查两个浮点数是否相等。 操作符运算的优先级 Go中的操作符运算的优先级和其它流行语言有一些差别。0 码力 | 821 页 | 956.82 KB | 1 年前3
Hello 算法 1.2.0 简体中文 Go 版216 10.4 哈希优化策略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 10.5 重识搜索算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 10.6 小结 . . . . 处于相同 的增长级别,仅相差一个常数项 ? 的倍数。 第 2 章 复杂度分析 www.hello‑algo.com 31 图 2‑8 函数的渐近上界 2.3.3 推算方法 渐近上界的数学味儿有点重,如果你感觉没有完全理解,也无须担心。我们可以先掌握推算方法,在不断的 实践中,就可以逐渐领悟其数学意义。 根据定义,确定 ?(?) 之后,我们便可得到时间复杂度 ?(?(?)) 。那么如何确定渐近上界 算法在不同数据 规模下的效率。 时间复杂度 ‧ 时间复杂度用于衡量算法运行时间随数据量增长的趋势,可以有效评估算法效率,但在某些情况下可 能失效,如在输入的数据量较小或时间复杂度相同时,无法精确对比算法效率的优劣。 ‧ 最差时间复杂度使用大 ? 符号表示,对应函数渐近上界,反映当 ? 趋向正无穷时,操作数量 ?(?) 的 增长级别。 ‧ 推算时间复杂度分为两步,首先统计操作数量,然后判断渐近上界。0 码力 | 384 页 | 18.49 MB | 10 月前3
Hello 算法 1.1.0 Go版216 10.4 哈希优化策略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 10.5 重识搜索算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 10.6 小结 . . . . ) 处于相同 的增长级别,仅相差一个常数项 ? 的倍数。 第 2 章 复杂度分析 hello‑algo.com 31 图 2‑8 函数的渐近上界 2.3.3 推算方法 渐近上界的数学味儿有点重,如果你感觉没有完全理解,也无须担心。我们可以先掌握推算方法,在不断的 实践中,就可以逐渐领悟其数学意义。 根据定义,确定 ?(?) 之后,我们便可得到时间复杂度 ?(?(?)) 。那么如何确定渐近上界 算法在不同数据 规模下的效率。 时间复杂度 ‧ 时间复杂度用于衡量算法运行时间随数据量增长的趋势,可以有效评估算法效率,但在某些情况下可 能失效,如在输入的数据量较小或时间复杂度相同时,无法精确对比算法效率的优劣。 ‧ 最差时间复杂度使用大 ? 符号表示,对应函数渐近上界,反映当 ? 趋向正无穷时,操作数量 ?(?) 的 增长级别。 ‧ 推算时间复杂度分为两步,首先统计操作数量,然后判断渐近上界。0 码力 | 383 页 | 18.48 MB | 1 年前3
Hello 算法 1.0.0 Golang版218 10.4 哈希优化策略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 10.5 重识搜索算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 10.6 小结 . . . . ) 处于相同 的增长级别,仅相差一个常数项 ? 的倍数。 第 2 章 复杂度分析 hello‑algo.com 31 图 2‑8 函数的渐近上界 2.3.3 推算方法 渐近上界的数学味儿有点重,如果你感觉没有完全理解,也无须担心。我们可以先掌握推算方法,在不断的 实践中,就可以逐渐领悟其数学意义。 根据定义,确定 ?(?) 之后,我们便可得到时间复杂度 ?(?(?)) 。那么如何确定渐近上界 算法在不同数据 规模下的效率。 时间复杂度 ‧ 时间复杂度用于衡量算法运行时间随数据量增长的趋势,可以有效评估算法效率,但在某些情况下可 能失效,如在输入的数据量较小或时间复杂度相同时,无法精确对比算法效率的优劣。 ‧ 最差时间复杂度使用大 ? 符号表示,对应函数渐近上界,反映当 ? 趋向正无穷时,操作数量 ?(?) 的 增长级别。 ‧ 推算时间复杂度分为两步,首先统计操作数量,然后判断渐近上界。0 码力 | 382 页 | 17.60 MB | 1 年前3
共 41 条
- 1
- 2
- 3
- 4
- 5













