- Python 数据结构和算法教程
- Python - 数据结构首页
- Python - 数据结构简介
- Python - 数据结构环境
- Python - 数组
- Python - 列表
- Python - 元组
- Python - 字典
- Python - 二维数组
- Python - 矩阵
- Python - 集合
- Python - 映射
- Python - 链表
- Python - 栈
- Python - 队列
- Python - 双端队列
- Python - 高级链表
- Python - 哈希表
- Python - 二叉树
- Python - 搜索树
- Python - 堆
- Python - 图
- Python - 算法设计
- Python - 分治法
- Python - 递归
- Python - 回溯法
- Python - 排序算法
- Python - 搜索算法
- Python - 图算法
- Python - 算法分析
- Python - 大O表示法
- Python - 算法类
- Python - 均摊分析
- Python - 算法论证
- Python 数据结构与算法有用资源
- Python - 快速指南
- Python - 有用资源
- Python - 讨论
Python - 算法类型
为了比较算法并为特定场景选择特定算法,必须分析算法的效率和准确性。进行此分析的过程称为渐近分析。它指的是用数学计算单位计算任何操作的运行时间。
例如,一个操作的运行时间计算为 f(n),而另一个操作的运行时间计算为 g(n2)。这意味着第一个操作的运行时间将随着 n 的增加而线性增加,而第二个操作的运行时间将随着 n 的增加而呈指数增长。同样,如果 n 非常小,则两个操作的运行时间几乎相同。
通常,算法所需的时间分为三种类型:
最佳情况 - 程序执行所需的最小时间。
平均情况 - 程序执行所需的平均时间。
最坏情况 - 程序执行所需的最多时间。
渐近记号
常用的渐近记号来计算算法的运行时间复杂度。
Ο 记号
Ω 记号
θ 记号
大O记号,Ο
Ο(n) 表示法是表达算法运行时间上限的正式方式。它衡量最坏情况时间复杂度或算法可能完成所需的最长时间。
例如,对于函数 f(n)
Ο(f(n)) = { g(n) : there exists c > 0 and n0 such that f(n) ≤ c.g(n) for all n > n0. }
Ω 记号,Ω
Ω(n) 表示法是表达算法运行时间下限的正式方式。它衡量最佳情况时间复杂度或算法可能完成所需的最短时间。
例如,对于函数 f(n)
Ω(f(n)) ≥ { g(n) : there exists c > 0 and n0 such that g(n) ≤ c.f(n) for all n > n0. }
θ 记号,θ
θ(n) 表示法是表达算法运行时间下限和上限的正式方式。它表示如下:
θ(f(n)) = { g(n) if and only if g(n) = Ο(f(n)) and g(n) = Ω(f(n)) for all n > n0. }
常见渐近记号
下面列出了一些常见的渐近记号:
常数 | — | Ο(1) |
对数 | — | Ο(log n) |
线性 | — | Ο(n) |
n log n | — | Ο(n log n) |
平方 | — | Ο(n2) |
立方 | — | Ο(n3) |
多项式 | — | nΟ(1) |
指数 | — | 2Ο(n) |
广告