- Python 数据结构和算法教程
- Python-DS 主页
- Python-DS简介
- Python-DS 环境
- 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 非常小,则两个操作的运行时间将几乎相同。
通常,算法所需的时间分为三种类型 -
最佳情况- 程序执行所需的最短时间。
平均情况- 程序执行所需的平均时间。
最坏情况- 程序执行所需的最长时间。
渐近符号
常用的渐近符号来计算算法的运行时间复杂度。
Ο 表示法
Ω 表示法
θ 表示法
大哦符号,Ο
符号 Ο(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. }
Theta 表示法,θ
符号 θ(n) 是表达算法运行时间的下限和上限的正式方式。它表示如下 -
θ(f(n)) = { g(n) if and only if g(n) = Ο(f(n)) and g(n) = Ω(f(n)) for all n > n0. }
常见渐近符号
下面列出了一些常见的渐近符号 -
持续的 | - | Ο(1) |
对数 | - | Ο(logn) |
线性 | - | Ο(n) |
对数 n | - | Ο(n log n) |
二次的 | - | Ο(n 2 ) |
立方体 | - | Ο(n 3 ) |
多项式 | - | Ο (1) |
指数 | - | 2 Ο(n) |