python 常见时间复杂度

本文介绍了Python算法分析中的时间复杂度,重点在于最坏时间复杂度,并列举了常见时间复杂度如O(n!)和O(n^n)的关系,提示在实际应用中要注意函数计算的适用范围。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

所谓的时间复杂度就是基本运算数量的总和,在分析算法时,存在三种可能:1.最优时间复杂度:算法完成工作最少需要多少基本操作;
2.最坏时间复杂度:算法完成工作最多需要多少基本操作;
3.平均时间复杂度:算法完成工作平均需要多少基本操作;
我们主要关注的是最坏时间复杂度

时间复杂度的几条基本计算规则:

基本操作 赋值,打印等此类操作,时间复杂度为O(1)
顺序结构 时间复杂度相加
循环结构 时间复杂度相乘
分支结构 选择分支中最大的时间复杂度

注意:判断一个算法的效率时,往往关注操作数量的最高次项,其它次要项和常数项可忽略,此外,在没有特殊说明时,往往研究最坏时间复杂度。

常见时间复杂度:

执行次数 时间复杂度 名称 举例
21 O(1) 常数阶 赋值、打印等
2*n+10 O(n) 线性阶 顺序查找
n^2+2*n+10 O(n^2) 平方阶 两重循环
n^3+2*n+1 O(n^3) 立方阶 三重循环
5*log(n)+n^2 O(log(n)) 对数阶 二分查找
n*log(n)+n^2 O(n*log(n)) 对数线性阶 堆排序法
2^n O(2^n) 指数阶 斐波那契数列
3*n^n+1 O(n^n) n次方阶 n重循环
n! O(n!) 阶乘 旅行商

常见时间复杂度按所消耗的时间从小到大排序:
当n>=65时,O(n!)>O(n^n)
在这里插入图片描述

import numpy as np
import math
import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot()
ax.set(xlim=[0,65], ylim=[0,100], title=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值