时间复杂度与空间复杂度

本文详细介绍了时间复杂度的概念及常见类型,包括如何通过算法优化来降低复杂度。同时探讨了空间复杂度及其在不同算法中的表现。

时间复杂度:

时间复杂度和程序执行的语句次数有关。程序执行的语句数越多,那么耗时越长,时间复杂度越高。

但是时间复杂度是一个对大规模数据的估计,所以只在乎最高次幂,不管系数和低次幂。

常见的时间复杂度如下表所示:

时间复杂度的推导:
能够节省时间的巧妙算法,其本质都是通过一个时间复杂度是O(1)的操作,将原来规模为N的问题变为规模为N/2的问题。所以能够推导出二分法的时间复杂度为:

T(n) = T(n/2) + O(1) = T(n/4) + O(1) = .....= T(1) + O(1) * logn

在分析算法时间复杂度的时候,先看这个算法的时间复杂度,然后去找采用这个算法之后,问题的规模有没有变化。

1.使用一个O(N)的算法,将N的规模缩小一半:这个算法的时间复杂度是O(N)。按照上述公式,最后推出的时间复杂度计算公式为:

T(1) + O(1)  + O(2) +O(4) + O(8) +...o(N/2) +O(N) 这些的和是O(2*N),即为O(N)。这个和二分的区别是,利用时间复杂度为O(N)的操作将数组分开的,而不是O(1)。

2. 利用O(1)的时间将N的问题拆为两个O(N/2)的问题:

时间复杂度为O(N.2)。因为这里虽然拆成N/2的问题,但是是2个N/2。所以最后还是N个问题。

空间复杂度:

主要是建立的数组或者HashMap所消耗的空间。常见算法的空间复杂度:

快排:最优:O(logn) 最坏:O(n)

二分: O(1)

最短路径(Dijkstra):O(V) V表示点集大小。

【SCI复现】基于纳什博弈的多微网主体电热双层共享策略研究(Matlab代码实现)内容概要:本文围绕“基于纳什博弈的多微网主体电热双层共享策略研究”展开,结合Matlab代码实现,复现了SCI级别的科研成果。研究聚焦于多个微网主体之间的能源共享问题,引入纳什博弈理论构建双层优化模型,上层为各微网间的非合作博弈策略,下层为各微网内部电热联合优化调度,实现能源高效利用经济性目标的平衡。文中详细阐述了模型构建、博弈均衡求解、约束处理及算法实现过程,并通过Matlab编程进行仿真验证,展示了多微网在电热耦合条件下的运行特性和共享效益。; 适合人群:具备一定电力系统、优化理论和博弈论基础知识的研究生、科研人员及从事能源互联网、微电网优化等相关领域的工程师。; 使用场景及目标:① 学习如何将纳什博弈应用于多主体能源系统优化;② 掌握双层优化模型的建模求解方法;③ 复现SCI论文中的仿真案例,提升科研实践能力;④ 为微电网集群协同调度、能源共享机制设计提供技术参考。; 阅读建议:建议读者结合Matlab代码逐行理解模型实现细节,重点关注博弈均衡的求解过程双层结构的迭代逻辑,同时可尝试修改参数或扩展模型以适应不同应用场景,深化对多主体协同优化机制的理解。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值