Hello 算法 1.0.0 Python版器上进行测试,统计平均效率,而这是不现实的。 另一方面,展开完整测试非常耗费资源。随着输入数据量的变化,算法会表现出不同的效率。例如,在输入 数据量较小时,算法 A 的运行时间比算法 B 短;而在输入数据量较大时,测试结果可能恰恰相反。因此,为 了得到有说服力的结论,我们需要测试各种规模的输入数据,而这需要耗费大量的计算资源。 2.1.2 理论估算 由于实际测试具有较大的局限性,因此我们可以考 asymptotic complexity analysis」,简称「复杂度分析」。 复杂度分析能够体现算法运行所需的时间和空间资源与输入数据大小之间的关系。它描述了随着输入数据大 小的增加,算法执行所需时间和空间的增长趋势。这个定义有些拗口,我们可以将其分为三个重点来理解。 ‧“时间和空间资源”分别对应「时间复杂度 time complexity」和「空间复杂度 space complexity」。 ‧ 图 2‑15 所示。 图 2‑15 算法使用的相关空间 相关代码如下: class Node: """ 类""" def __init__(self, x: int): self.val: int = x # 节点值 self.next: Node | None = None # 指向下一节点的引用 def function() -> int: """ 函数""" # 执行某些操作0 码力 | 362 页 | 17.54 MB | 1 年前3
Hello 算法 1.1.0 Python版器上进行测试,统计平均效率,而这是不现实的。 另一方面,展开完整测试非常耗费资源。随着输入数据量的变化,算法会表现出不同的效率。例如,在输入 数据量较小时,算法 A 的运行时间比算法 B 短;而在输入数据量较大时,测试结果可能恰恰相反。因此,为 了得到有说服力的结论,我们需要测试各种规模的输入数据,而这需要耗费大量的计算资源。 2.1.2 理论估算 由于实际测试具有较大的局限性,因此我们可以考 为渐近复杂度分析(asymptotic complexity analysis),简称复杂度分析。 复杂度分析能够体现算法运行所需的时间和空间资源与输入数据大小之间的关系。它描述了随着输入数据大 小的增加,算法执行所需时间和空间的增长趋势。这个定义有些拗口,我们可以将其分为三个重点来理解。 ‧“时间和空间资源”分别对应时间复杂度(time complexity)和空间复杂度(space complexity)。 ‧“随 图 2‑15 所示。 图 2‑15 算法使用的相关空间 相关代码如下: class Node: """ 类""" def __init__(self, x: int): self.val: int = x # 节点值 self.next: Node | None = None # 指向下一节点的引用 def function() -> int: """ 函数""" # 执行某些操作0 码力 | 364 页 | 18.42 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Python 版试,统计 平均效率,而这是不现实的。 另一方面,展开完整测试非常耗费资源。随着输入数据量的变化,算法会表现出不同的效率。例如,在输入 数据量较小时,算法 A 的运行时间比算法 B 短;而在输入数据量较大时,测试结果可能恰恰相反。因此,为 了得到有说服力的结论,我们需要测试各种规模的输入数据,而这需要耗费大量的计算资源。 2.1.2 理论估算 由于实际测试具有较大的局限性,因此我们可以考 为渐近复杂度分析(asymptotic complexity analysis),简称复杂度分析。 复杂度分析能够体现算法运行所需的时间和空间资源与输入数据大小之间的关系。它描述了随着输入数据大 小的增加,算法执行所需时间和空间的增长趋势。这个定义有些拗口,我们可以将其分为三个重点来理解。 ‧“时间和空间资源”分别对应时间复杂度(time complexity)和空间复杂度(space complexity)。 ‧“随 图 2‑15 所示。 图 2‑15 算法使用的相关空间 相关代码如下: class Node: """ 类""" def __init__(self, x: int): self.val: int = x # 节点值 self.next: Node | None = None # 指向下一节点的引用 def function() -> int: """ 函数""" # 执行某些操作0 码力 | 364 页 | 18.43 MB | 10 月前3
Hello 算法 1.0.0b4 Python版着我们需要在各种 机器上进行测试,而这是不现实的。 展开完整测试非常耗费资源。随着输入数据量的变化,算法会表现出不同的效率。例如,输入数据量较小时, 算法 A 的运行时间可能短于算法 B;而输入数据量较大时,测试结果可能相反。因此,为了得到有说服力的 结论,我们需要测试各种规模的输入数据,这样需要占用大量的计算资源。 理论估算 由于实际测试具有较大的局限性,我们可以考虑仅通过一些计算来评估算法的效率。这种估算方法被称为 如果你对复杂度分析的概念仍感到困惑,无需担心,我们会在后续章节详细介绍。 2.1.3. 复杂度分析重要性 复杂度分析为我们提供了一把评估算法效率的“标尺”,告诉我们执行某个算法所需的时间和空间资源,并使 我们能够对比不同算法之间的效率。 复杂度是个数学概念,对于初学者可能比较抽象,学习难度相对较高。从这个角度看,复杂度分析可能不太 适合作为第一章的内容。然而,当我们讨论某个数据结构或算 暂存数据、输出数据、栈帧空间 三部分。 Figure 2‑9. 算法使用的相关空间 class Node: """ 类""" def __init__(self, x: int): self.val: int = x # 节点值 self.next: Optional[Node] = None # 指向下一节点的指针(引用) 2. 复杂度 hello‑algo.com 28 def function()0 码力 | 329 页 | 27.34 MB | 1 年前3
Hello 算法 1.0.0b5 Python版在各种机器上进行测试,统计平均效率,而这是不现实的。 另一方面,展开完整测试非常耗费资源。随着输入数据量的变化,算法会表现出不同的效率。例如,在输入 数据量较小时,算法 A 的运行时间比算法 B 更少;而输入数据量较大时,测试结果可能恰恰相反。因此,为 了得到有说服力的结论,我们需要测试各种规模的输入数据,而这需要耗费大量的计算资源。 2.1.2 理论估算 由于实际测试具有较大的局限性,我们可以考虑仅 asymptotic complexity analysis」,简称「复杂度分析」。 复杂度分析体现算法运行所需的时间(空间)资源与输入数据大小之间的关系。它描述了随着输入数据大小 的增加,算法执行所需时间和空间的增长趋势。这个定义有些拗口,我们可以将其分为三个重点来理解。 ‧“时间和空间资源”分别对应「时间复杂度 time complexity」和「空间复杂度 space complexity」。 ‧ 暂存数据、栈帧空间和输出数据三部分。 图 2‑15 算法使用的相关空间 class Node: """ 类""" def __init__(self, x: int): self.val: int = x # 节点值 self.next: Optional[Node] = None # 指向下一节点的引用 def function() -> int: """ 函数""" # 执行某些操作0 码力 | 361 页 | 30.64 MB | 1 年前3
Hello 算法 1.2.0 繁体中文 Python 版輸出資料三部分,如圖 2‑15 所示。 圖 2‑15 演算法使用的相關空間 相關程式碼如下: class Node: """ 類別""" def __init__(self, x: int): self.val: int = x # 節點值 self.next: Node | None = None # 指向下一節點的引用 def function() -> int: """ 函式""" 執行某些操作... return 0 def algorithm(n) -> int: # 輸入資料 A = 0 # 暫存資料(常數,一般用大寫字母表示) b = 0 # 暫存資料(變數) node = Node(0) # 暫存資料(物件) c = function() # 堆疊幀空間(呼叫函式) return A + b + c # 輸出資料 2.4.2 推算方法 空間複雜度的推算方法與時 執行某些操作 return 0 def constant(n: int): """ 常數階""" # 常數、變數、物件佔用 O(1) 空間 a = 0 nums = [0] * 10000 node = ListNode(0) # 迴圈中的變數佔用 O(1) 空間 for _ in range(n): c = 0 # 迴圈中的函式佔用 O(1) 空間 for _ in range(n):0 码力 | 364 页 | 18.74 MB | 10 月前3
Python 标准库参考指南 3.10.15 abc ——关于导入的抽象基类 . . . . . . . . . . . . . . . . . . . . . . . . 1812 31.5.4 importlib.resources -- 资源 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1819 31.5.5 importlib.machinery ——导入器和路径钩子函数。 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1835 32.1.2 节点类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1838 32 . . . . . . . . . . . . . 1923 34.8 resource --- 资源使用信息 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1925 34.8.1 资源限制 . . . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 2207 页 | 10.45 MB | 9 月前3
Python 标准库参考指南 3.12 -- 包资源的读取、打开和访问 . . . . . . . . . . . . . . . . . . . . . 1865 31.6.1 弃用的函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1866 31.7 importlib.resources.abc -- 资源的抽象基类 抽象文法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1877 32.1.2 节点类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1880 32.1.3 . . . . . . . . . . . . . . 1969 34.8 resource --- 资源使用信息 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1972 34.8.1 资源限制 . . . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 2253 页 | 11.81 MB | 9 月前3
Python 标准库参考指南 3.12 -- 包资源的读取、打开和访问 . . . . . . . . . . . . . . . . . . . . . 1865 31.6.1 弃用的函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1866 31.7 importlib.resources.abc -- 资源的抽象基类 抽象文法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1877 32.1.2 节点类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1880 32.1.3 . . . . . . . . . . . . . . 1969 34.8 resource --- 资源使用信息 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1972 34.8.1 资源限制 . . . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 2253 页 | 11.81 MB | 9 月前3
Python 标准库参考指南 3.13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1893 31.6 importlib.resources -- 包资源的读取、打开和访问 . . . . . . . . . . . . . . . . . . . . . 1896 31.6.1 函数式 API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1897 31.7 importlib.resources.abc -- 资源的抽象基类 . . . . . . . . . . . . . . . . . . . . . . . . . 1898 31.8 importlib.metadata -- 访问软件包元数据 . . . . 抽象文法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1909 32.1.2 节点类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1912 32.1.30 码力 | 2246 页 | 11.74 MB | 9 月前3
共 397 条
- 1
- 2
- 3
- 4
- 5
- 6
- 40













