Hello 算法 1.0.0b4 Golang版二叉树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 7.2. 二叉树遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 7.3. 二叉树数组表示 . 2. 图基础操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 9.3. 图的遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 9.4. 小结 . . . count } 遍历数组和遍历链表等操作的时间复杂度均为 ?(?) ,其中 ? 为数组或链表的长度。 � 如何确定输入数据大小 ? ? 数据大小 ? 需根据输入数据的类型来具体确定。例如,在上述示例中,我们直接将 ? 视为输 入数据大小;在下面遍历数组的示例中,数据大小 ? 为数组的长度。 // === File: time_complexity.go === /* 线性阶(遍历数组) */0 码力 | 347 页 | 27.40 MB | 1 年前3
Hello 算法 1.0.0 Golang版1 二叉树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 7.2 二叉树遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 7.3 二叉树数组表示 . . 190 9.2 图的基础操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 9.3 图的遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 9.4 小结 . . . 。 以下函数基于 for 循环实现了求和 1 + 2 + ⋯ + ? ,求和结果使用变量 res 记录。需要注意的是,Python 中 range(a, b) 对应的区间是“左闭右开”的,对应的遍历范围为 ?, ? + 1, … , ? − 1 : // === File: iteration.go === /* for 循环 */ func forLoop(n int) int { res0 码力 | 382 页 | 17.60 MB | 1 年前3
Hello 算法 1.1.0 Go版1 二叉树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 7.2 二叉树遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 7.3 二叉树数组表示 . . 190 9.2 图的基础操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 9.3 图的遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 9.4 小结 . . . 。 以下函数基于 for 循环实现了求和 1 + 2 + ⋯ + ? ,求和结果使用变量 res 记录。需要注意的是,Python 中 range(a, b) 对应的区间是“左闭右开”的,对应的遍历范围为 ?, ? + 1, … , ? − 1 : // === File: iteration.go === /* for 循环 */ func forLoop(n int) int { res0 码力 | 383 页 | 18.48 MB | 1 年前3
Hello 算法 1.0.0b5 Golang版1 二叉树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 7.2 二叉树遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 7.3 二叉树数组表示 . . 9.2 图基础操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 9.3 图的遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 9.4 小结 . . . 。 以下函数基于 for 循环实现了求和 1 + 2 + ⋯ + ? ,求和结果使用变量 res 记录。需要注意的是,Python 中 range(a, b) 对应的区间是“左闭右开”的,对应的遍历范围为 ?, ? + 1, … , ? − 1 。 // === File: iteration.go === /* for 循环 */ func forLoop(n int) int { res0 码力 | 379 页 | 30.70 MB | 1 年前3
Hello 算法 1.0.0b2 Golang版二叉树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 7.2. 二叉树遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 7.3. 二叉搜索树 . 图基础操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 9.3. 图的遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 9.4. 小结 . . 0; i < n; i++ { count++ } return count } 「遍历数组」和「遍历链表」等操作,时间复杂度都为 ?(?) ,其中 ? 为数组或链表的长度。 � 数据大小 ? 是根据输入数据的类型来确定的。比如,在上述示例中,我们直接将 ? 看作输入数 据大小;以下遍历数组示例中,数据大小 ? 为数组的长度。 2. 复杂度分析 hello‑algo.com 200 码力 | 202 页 | 15.73 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Go 版1 二叉树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 7.2 二叉树遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 7.3 二叉树数组表示 . . 190 9.2 图的基础操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 9.3 图的遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 9.4 小结 . . . 。 以下函数基于 for 循环实现了求和 1 + 2 + ⋯ + ? ,求和结果使用变量 res 记录。需要注意的是,Python 中 range(a, b) 对应的区间是“左闭右开”的,对应的遍历范围为 ?, ? + 1, … , ? − 1 : // === File: iteration.go === /* for 循环 */ func forLoop(n int) int { res0 码力 | 384 页 | 18.49 MB | 10 月前3
Hello 算法 1.0.0b1 Golang版二叉树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 7.2. 二叉树遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 7.3. 二叉搜索树 . . 图基础操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 9.3. 图的遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 9.4. 小结 . . 0; i < n; i++ { count++ } return count } 「遍历数组」和「遍历链表」等操作,时间复杂度都为 ?(?) ,其中 ? 为数组或链表的长度。 � 数据大小 ? 是根据输入数据的类型来确定的。比如,在上述示例中,我们直接将 ? 看作输入数 据大小;以下遍历数组示例中,数据大小 ? 为数组的长度。 2. 复杂度分析 hello‑algo.com 200 码力 | 190 页 | 14.71 MB | 1 年前3
Golang 101(Go语言101 中文版) v1.21.a注意,做为一个特例,copy函数可以用来将一个字符串中的字节复制到一个字 节切片(第19章)。 截至目前(Go 1.21),copy函数调用的两个实参均不能为类型不确定的nil。 遍历容器元素 在Go中,我们可以使用下面的语法形式来遍历一个容器中的键值和元素: for key, element = range aContainer { // 使用key和element ... } 在此语法形式中 这个变种形式没有太大实用价值。 } 遍历一个nil映射或者nil切片是允许的。这样的遍历可以看作是一个空操作。 一些关于遍历映射条目的细节: 映射中的条目的遍历顺序是不确定的(可以认为是随机的)。或者说,同 一个映射中的条目的两次遍历中,条目的顺序很可能是不一致的,即使在 这两次遍历之间,此映射并未发生任何改变。 如果在一个映射中的条目的遍历过程中,一个还没有被遍历到的条目被删 除了,则此条目保证不会被遍历出来。 如 如果在一个映射中的条目的遍历过程中,一个新的条目被添加入此映射, 则此条目并不保证将在此遍历过程中被遍历出来。 如果可以确保没有其它协程操纵一个映射m,则下面的代码保证将清空m中所有 条目(除了那些键值为NaN的条目)。 for key := range m { delete(m, key) } (Go 1.21引入了一个clear内置函数,此函数可以用来清空一个映射中所有条 目,包括那些键值为NaN的条目。)0 码力 | 608 页 | 1.08 MB | 1 年前3
Golang 101(Go语言101 中文版) v1.21.a注意,做为一个特例,copy函数可以用来将一个字符串中的字节复制到一个字 节切片(第19章)。 截至目前(Go 1.21),copy函数调用的两个实参均不能为类型不确定的nil。 遍历容器元素 在Go中,我们可以使用下面的语法形式来遍历一个容器中的键值和元素: for key, element = range aContainer { // 使用key和element ... } 在此语法形式 | } 遍历一个nil映射或者nil切片是允许的。这样的遍历可以看作是一个空操作。 一些关于遍历映射条目的细节: 映射中的条目的遍历顺序是不确定的(可以认为是随机的)。或者说,同 一个映射中的条目的两次遍历中,条目的顺序很可能是不一致的,即使在 这两次遍历之间,此映射并未发生任何改变。 如果在一个映射中的条目的遍历过程中,一个还没有被遍历到的条目被删 除了,则此条目保证不会被遍历出来。 如 如果在一个映射中的条目的遍历过程中,一个新的条目被添加入此映射, 则此条目并不保证将在此遍历过程中被遍历出来。 如果可以确保没有其它协程操纵一个映射m,则下面的代码保证将清空m中所 有条目(除了那些键值为NaN的条目)。 1| for key := range m { 2| delete(m, key) 3| } (Go 1.21引入了一个clear内置函数,此函数可以用来清空一个映射中所有条0 码力 | 821 页 | 956.82 KB | 1 年前3
Golang 101(Go语言101 中文版) v1.21.a字节复制到一个字节切 片(第19章)。 第18章:数组、切片和映射 167 截至目前(Go 1.21),copy函数调用的两个实参均不能为类型不确定的nil。 遍历容器元素 在Go中,我们可以使用下面的语法形式来遍历一个容器中的键值和元素: for key, element = range aContainer { // 使用key和element ... } 在此语 26| } 遍历一个nil映射或者nil切片是允许的。这样的遍历可以看作是一个空操作。 一些关于遍历映射条目的细节: 映射中的条目的遍历顺序是不确定的(可以认为是随机的)。或者说,同一个 映射中的条目的两次遍历中,条目的顺序很可能是不一致的,即使在这两次遍 历之间,此映射并未发生任何改变。 如果在一个映射中的条目的遍历过程中,一个还没有被遍历到的条目被删除 了,则此条目保证不会被遍历出来。 第18章:数组、切片和映射 第18章:数组、切片和映射 169 如果在一个映射中的条目的遍历过程中,一个新的条目被添加入此映射,则此 条目并不保证将在此遍历过程中被遍历出来。 如果可以确保没有其它协程操纵一个映射m,则下面的代码保证将清空m中所有条目 (除了那些键值为NaN的条目)。 1| for key := range m { 2| delete(m, key) 3| } (Go 1.21引入了一0 码力 | 591 页 | 21.40 MB | 1 年前3
共 23 条
- 1
- 2
- 3













