Hello 算法 1.0.0b5 Python版1. 将扑克牌划分为“有序”和“无序”两部分,并假设初始状态下最左 1 张扑克牌已经有序。 2. 在无序部分抽出一张扑克牌,插入至有序部分的正确位置;完成后最左 2 张扑克已经有序。 3. 不断循环步骤 2. ,每一轮将一张扑克牌从无序部分插入至有序部分,直至所有扑克牌都有序。 图 1‑2 扑克排序步骤 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 iteration」是一种重复执行某个任务的控制结构。在迭代中,程序会在满足一定的条件下重复执行某 段代码,直到这个条件不再满足。 1. for 循环 for 循环是最常见的迭代形式之一,适合预先知道迭代次数时使用。 以下函数基于 for 循环实现了求和 1 + 2 + ⋯ + ? ,求和结果使用变量 res 记录。需要注意的是,Python 中 range(a, b) 对应的区间是“左闭右开”的,对应的遍历范围为 ?, ? + 1, … , ? − 1 。 # === File: iteration.py === def for_loop(n: int) -> int: """for 循环""" res = 0 # 循环求和 1, 2, ..., n-1, n for i in range(1, n + 1): res += i return res 图 2‑1 展示了该求和函数的流程框图。0 码力 | 361 页 | 30.64 MB | 1 年前3
Hello 算法 1.1.0 Python版1. 将扑克牌划分为“有序”和“无序”两部分,并假设初始状态下最左 1 张扑克牌已经有序。 2. 在无序部分抽出一张扑克牌,插入至有序部分的正确位置;完成后最左 2 张扑克已经有序。 3. 不断循环步骤 2. ,每一轮将一张扑克牌从无序部分插入至有序部分,直至所有扑克牌都有序。 图 1‑2 扑克排序步骤 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 迭代(iteration)是一种重复执行某个任务的控制结构。在迭代中,程序会在满足一定的条件下重复执行某段 代码,直到这个条件不再满足。 1. for 循环 for 循环是最常见的迭代形式之一,适合在预先知道迭代次数时使用。 以下函数基于 for 循环实现了求和 1 + 2 + ⋯ + ? ,求和结果使用变量 res 记录。需要注意的是,Python 中 range(a, b) 对应的区间是“左闭右开”的,对应的遍历范围为 ?, ? + 1, … , ? − 1 : # === File: iteration.py === def for_loop(n: int) -> int: """for 循环""" res = 0 # 循环求和 1, 2, ..., n-1, n for i in range(1, n + 1): res += i return res 图 2‑1 是该求和函数的流程框图。0 码力 | 364 页 | 18.42 MB | 1 年前3
Hello 算法 1.0.0 Python版1. 将扑克牌划分为“有序”和“无序”两部分,并假设初始状态下最左 1 张扑克牌已经有序。 2. 在无序部分抽出一张扑克牌,插入至有序部分的正确位置;完成后最左 2 张扑克已经有序。 3. 不断循环步骤 2. ,每一轮将一张扑克牌从无序部分插入至有序部分,直至所有扑克牌都有序。 图 1‑2 扑克排序步骤 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 iteration」是一种重复执行某个任务的控制结构。在迭代中,程序会在满足一定的条件下重复执行某 段代码,直到这个条件不再满足。 1. for 循环 for 循环是最常见的迭代形式之一,适合在预先知道迭代次数时使用。 以下函数基于 for 循环实现了求和 1 + 2 + ⋯ + ? ,求和结果使用变量 res 记录。需要注意的是,Python 中 range(a, b) 对应的区间是“左闭右开”的,对应的遍历范围为 ?, ? + 1, … , ? − 1 : # === File: iteration.py === def for_loop(n: int) -> int: """for 循环""" res = 0 # 循环求和 1, 2, ..., n-1, n for i in range(1, n + 1): res += i return res 图 2‑1 是该求和函数的流程框图。0 码力 | 362 页 | 17.54 MB | 1 年前3
Hello 算法 1.0.0b1 Python版的字,一般我们会这样做: 1. 打开字典大致一半页数的位置,查看此页的首字母是什么(假设为 ? ); 2. 由于在英文字母表中 ? 在 ? 的后面,因此应排除字典前半部分,查找范围仅剩后半部分; 3. 循环执行步骤 1‑2 ,直到找到拼音首字母为 ? 的页码时终止。 1. 引言 hello‑algo.com 9 Figure 1‑1. 查字典步骤 查字典这个小学生的标配技能,实际上就是大名鼎鼎的 5) × ? = 6? + 12 # 在某运行平台下 def algorithm(n): a = 2 # 1 ns a = a + 1 # 1 ns a = a * 2 # 10 ns # 循环 n 次 2. 复杂度分析 hello‑algo.com 14 for _ in range(n): # 1 ns print(0) # 5 ns 但实际上,统计算法的运行时间既不合理也不现 A 只有 1 个打印操作,算法运行时间不随着 ? 增大而增长。我们称此算法的时间复杂度为「常数阶」。 ‧ 算法 B 中的打印操作需要循环 ? 次,算法运行时间随着 ? 增大成线性增长。此算法的时间复杂度被称为 「线性阶」。 ‧ 算法 C 中的打印操作需要循环 1000000 次,但运行时间仍与输入数据大小 ? 无关。因此 C 的时间复杂 度和 A 相同,仍为「常数阶」。 # 算法 A 时间复杂度:常数阶0 码力 | 178 页 | 14.67 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Python 版1. 将扑克牌划分为“有序”和“无序”两部分,并假设初始状态下最左 1 张扑克牌已经有序。 2. 在无序部分抽出一张扑克牌,插入至有序部分的正确位置;完成后最左 2 张扑克已经有序。 3. 不断循环步骤 2. ,每一轮将一张扑克牌从无序部分插入至有序部分,直至所有扑克牌都有序。 图 1‑2 扑克排序步骤 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 迭代(iteration)是一种重复执行某个任务的控制结构。在迭代中,程序会在满足一定的条件下重复执行某段 代码,直到这个条件不再满足。 1. for 循环 for 循环是最常见的迭代形式之一,适合在预先知道迭代次数时使用。 以下函数基于 for 循环实现了求和 1 + 2 + ⋯ + ? ,求和结果使用变量 res 记录。需要注意的是,Python 中 range(a, b) 对应的区间是“左闭右开”的,对应的遍历范围为 ?, ? + 1, … , ? − 1 : # === File: iteration.py === def for_loop(n: int) -> int: """for 循环""" res = 0 # 循环求和 1, 2, ..., n-1, n for i in range(1, n + 1): res += i return res 第 2 章 复杂度分析 www.hello‑algo0 码力 | 364 页 | 18.43 MB | 10 月前3
Hello 算法 1.0.0b2 Python版的字,一般我们会这样做: 1. 打开字典大致一半页数的位置,查看此页的首字母是什么(假设为 ? ); 2. 由于在英文字母表中 ? 在 ? 的后面,因此应排除字典前半部分,查找范围仅剩后半部分; 3. 循环执行步骤 1‑2 ,直到找到拼音首字母为 ? 的页码时终止。 1. 引言 hello‑algo.com 9 Figure 1‑1. 查字典步骤 查字典这个小学生的标配技能,实际上就是大名鼎鼎的 12 # 在某运行平台下 def algorithm(n: int) -> None: a = 2 # 1 ns a = a + 1 # 1 ns a = a * 2 # 10 ns # 循环 n 次 2. 复杂度分析 hello‑algo.com 14 for _ in range(n): # 1 ns print(0) # 5 ns 但实际上,统计算法的运行时间既不合理也不现 A 只有 1 个打印操作,算法运行时间不随着 ? 增大而增长。我们称此算法的时间复杂度为「常数阶」。 ‧ 算法 B 中的打印操作需要循环 ? 次,算法运行时间随着 ? 增大成线性增长。此算法的时间复杂度被称为 「线性阶」。 ‧ 算法 C 中的打印操作需要循环 1000000 次,但运行时间仍与输入数据大小 ? 无关。因此 C 的时间复杂 度和 A 相同,仍为「常数阶」。 # 算法 A 时间复杂度:常数阶0 码力 | 186 页 | 15.69 MB | 1 年前3
Hello 算法 1.0.0b4 Python版2. 在无序区间抽出一张扑克牌,插入至有序区间的正确位置;完成后最左 2 张扑克已经有序。 3. 在无序区间抽出一张扑克牌,插入至有序区间的正确位置;完成后最左 3 张扑克已经有序。 4. 不断循环以上操作,直至所有扑克牌都有序后终止。 以上整理扑克牌的方法本质上就是「插入排序」算法,它在处理小型数据集时非常高效。许多编程语言的排 序库函数中都存在插入排序的身影。 Figure 1‑2. = 6? + 12 # 在某运行平台下 def algorithm(n: int): a = 2 # 1 ns a = a + 1 # 1 ns a = a * 2 # 10 ns # 循环 n 次 for _ in range(n): # 1 ns print(0) # 5 ns 2. 复杂度 hello‑algo.com 15 然而实际上,统计算法的运行时间既不合理也不现实 A 只有 1 个打印操作,算法运行时间不随着 ? 增大而增长。我们称此算法的时间复杂度为「常数 阶」。 ‧ 算法 B 中的打印操作需要循环 ? 次,算法运行时间随着 ? 增大呈线性增长。此算法的时间复杂度被称 为「线性阶」。 ‧ 算法 C 中的打印操作需要循环 1000000 次,但运行时间仍与输入数据大小 ? 无关。因此 C 的时间复杂 度和 A 相同,仍为「常数阶」。 # 算法 A 时间复杂度:常数阶0 码力 | 329 页 | 27.34 MB | 1 年前3
Python3 基础教程 - 廖雪峰............................................................................................. 60 循环 .................................................................................................. do_if.py 循环 循环 要计算 1+2+3,我们可以直接写表达式: >>> 1 + 2 + 3 6 要计算 1+2+3+...+10,勉强也能写出来。 但是,要计算 1+2+3+...+10000,直接写表达式就不可能了。 为了让计算机能计算成千上万次的重复运算,我们就需要循环语句。 Python 的循环有两种,一种是 for...in 循环,依次把 list 或 name in names: print(name) 执行这段代码,会依次打印 names 的每一个元素: Michael Bob Tracy 所以 for x in ...循环就是把每个元素代入变量 x,然后执行缩进块的 语句。 再比如我们想计算 1-10 的整数之和,可以用一个 sum 变量做累加: sum = 0 for x in [1, 2, 3, 4,0 码力 | 531 页 | 5.15 MB | 1 年前3
python3学习手册elif 判断句 : 语句体 else: 语句体 ★循环语句 ① for循环 for i in xx : # xx为可遍历的数据,如list,tuple,bytes,bytearray break #跳出当前循环,跳出for #使用索引: for i in range(10) range(1,9,2) #从1开始,步长为2,即1,3,5,7 ②while循环 while 判断 : 循环体 con�nue #con�nue跳过剩下的循环体,进入下一轮loop,break 跳出整个循环 ★整除 在python 2中,/ 如果参与运算的数为int,就是整除,只取整数 如果 /参与运算 dict() #用于生成一个dic�onary enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符 串)组合为一个索引序列,同时列出下标和数据,一般用在 for 循环当 中 slice() 函数实现切片对象,主要用在切片操作函数里的参数传递 sorted() 函 数 对 所 有 可 迭 代 的 对 象 进 行 排 序 操 作 , 默 认 升 序 , revers0 码力 | 213 页 | 3.53 MB | 1 年前3
Python 标准库参考指南 3.13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 10 函数式编程模块 377 10.1 itertools --- 为高效循环创建迭代器的函数 . . . . . . . . . . . . . . . . . . . . . . . . . . 377 10.1.1 Itertool 函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 992 18.1.8 事件循环 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 992 18.1.9 Futures 或者其作用方式与在其他类 Unix 系统上不同。文件 I/O, 文件系统和 Unix 权限相关的函数也同样会受限。 Emscripten 不允许阻塞式 I/O。其他阻塞式操作如sleep() 则会阻塞浏览器的事件循环。 Python 在 WebAssembly 平台上的特性与行为依赖于 Emscripten-SDK 或 WASI-SDK 的版本, WASM 运行时 (浏览器, NodeJS, wasmtime)0 码力 | 2246 页 | 11.74 MB | 9 月前3
共 101 条
- 1
- 2
- 3
- 4
- 5
- 6
- 11













