程序员数学基础【二、时间复杂度】(Python版本)(下)

简介: 程序员数学基础【二、时间复杂度】(Python版本)(下)

二、时间复杂度


1.时间复杂度:


1)一般情况下,算法中的基本操作语句的重复执行次数是时间规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),使得当n趋于无穷大时,T(n)/f(n)的极限值是一个不等于0的常数,则称f(n)是T(n)的同量级函数,记做T(n)=O(f(n)),称O(f(n))为算法的渐进时间复杂度,简称时间复杂度。


2)T(n)不同,但时间复杂度可能相同,如T(n)=n2+7n+6与T(n)=3n2+2n+2,他们的T(n)不同,但时间复杂度相同,都为O(f(n))。


3)计算时间复杂度的方法


√ 常用常数1代替运行时间中的加法常数 如 T(n)=n2+7n+6==> T(n)=n2+7n+1


√ 修改后的运行次数函数中,只保留最高阶项  T(n)=n2+7n+1==> T(n)=n2


√ 去除最高阶项的系数  T(n)=n2==> T(n)=n2==>O(n2)


2.常见的时间复杂度:


1)无循环条件下常数阶 O(1)    最稳定


2)对数阶 如O(log2n)


3)线性阶 O(n)


4)线性对数阶 O(nlog2n) —线性阶*对数阶


5)平方阶 O(n2)    线性阶*线性阶   两层n循环


6)立方阶 O(n3)   三层n循环


7)k次方阶 O(nk)


8)指数阶 O(2n)    执行慢(指数爆炸)


说明:


○常见的时间算法时间复杂度从(1)到(8)越来越复杂,随着n的增大,时间复杂度不断增大,算法的执行效率越来越低(O(1)<O(log2n)<O(n)<O(nlog2n)<O(n2) <O(n3) <O(nk)<O(2n)<O(n)!<O(nn))—简单记法:长对幂指阶


○我们应该尽可能避免(8)指数阶的算法


3.时间复杂度的规则

1)加法规则  T(n)=T1(n)+T2(n)=O(f(n)+O(g(n)=O(max(O(f(n),O(g(n))  多项式相加,只保留最高的阶,且系数变为1


2)乘法规则  T(n)=T1(n)*T2(n)=O(f(n))*O(g(n))=O(f(n)*g(n))  多项相乘,都保留


三、平均时间复杂度与最坏时间复杂度


1)平均时间复杂度是指所有有可能的输入实例均以等概率出现的情况下,该算法的运行时间


2)最坏情况下的时间复杂度是在算法在任何输入实例上运行的界限,就保证了算法的运行时间 不会比最坏情况更长



4、总结:


a)、通过时间复杂度我们就可以计算出我们的代码效率如何,在后期代码优化上起到证明的作用。


下篇内容:


程序员数学基础【三、取模运算(取余运算功能重叠部分)】(Python版本)


https://blog.csdn.net/feng8403000/article/details/114194267


万丈高楼平地起,程序员数学基础,从小学的【什么是数学】至【离散数学】(主要是图论)咱们一步步成长,共同加油。


相关文章
|
1月前
|
PyTorch Linux 算法框架/工具
pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
这篇文章是关于如何使用Anaconda进行Python环境管理,包括下载、安装、配置环境变量、创建多版本Python环境、安装PyTorch以及使用Jupyter Notebook的详细指南。
237 1
pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
|
1月前
|
机器学习/深度学习 缓存 算法
Python算法设计中的时间复杂度与空间复杂度,你真的理解对了吗?
【10月更文挑战第4天】在Python编程中,算法的设计与优化至关重要,尤其在数据处理、科学计算及机器学习领域。本文探讨了评估算法性能的核心指标——时间复杂度和空间复杂度。通过详细解释两者的概念,并提供快速排序和字符串反转的示例代码,帮助读者深入理解这些概念。同时,文章还讨论了如何在实际应用中平衡时间和空间复杂度,以实现最优性能。
59 6
|
21天前
|
数据可视化 算法 JavaScript
基于图论的时间序列数据平稳性与连通性分析:利用图形、数学和 Python 揭示时间序列数据中的隐藏模式
本文探讨了如何利用图论分析时间序列数据的平稳性和连通性。通过将时间序列数据转换为图结构,计算片段间的相似性,并构建连通图,可以揭示数据中的隐藏模式。文章介绍了平稳性的概念,提出了基于图的平稳性度量,并展示了图分区在可视化平稳性中的应用。此外,还模拟了不同平稳性和非平稳性程度的信号,分析了图度量的变化,为时间序列数据分析提供了新视角。
48 0
基于图论的时间序列数据平稳性与连通性分析:利用图形、数学和 Python 揭示时间序列数据中的隐藏模式
|
1月前
|
Python Windows
查看Python版本
【10月更文挑战第8天】查看Python版本
23 2
|
1月前
|
IDE 网络安全 开发工具
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
本文介绍了如何在PyCharm专业版中连接远程服务器并配置远程Python环境解释器,以便在服务器上运行代码。
263 0
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
|
1月前
|
机器学习/深度学习 缓存 PyTorch
pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
这篇文章是关于如何下载、安装和配置Miniconda,以及如何使用Miniconda创建和管理Python环境的详细指南。
337 0
pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
|
1月前
|
机器学习/深度学习 算法 C语言
【Python】Math--数学函数(详细附解析~)
【Python】Math--数学函数(详细附解析~)
|
2月前
|
开发者 Python
Python 的主流版本:Python 3.x
Python 的主流版本:Python 3.x
|
1月前
|
iOS开发 MacOS Python
Python编程-macOS系统数学符号快捷键录入并生成csv文件转换为excel文件
Python编程-macOS系统数学符号快捷键录入并生成csv文件转换为excel文件