首页 > 其他分享 >时间复杂度

时间复杂度

时间:2023-07-10 10:24:01浏览次数:28  
标签:摊还 log 复杂度 时间 操作 代价 varTheta

主定理

 递推式子的时间复杂度求法

\[T(n) = aT(\frac{n}{b}) + f(n), n >= b \]

 其中:

  • $n $是问题规模的大小
  • \(a\) 是原问题的子问题个数
  • \(\frac{n}{b}\) 是每个子问题的大小
  • \(f(n)\) 是子问题合并成原问题所需的代价

 分三种情况:

  1. $ f(n) < n^{\log_b ^a} $ ,那么 $T(n) = \varTheta (n^{\log_b ^a}) $
  2. $ f(n) = n^{\log_b ^a} $ ,那么 \(T(n) = \varTheta (n^{\log_b ^a}\log n)\)
  3. $ f(n) > n^{\log_b ^a} $,那么 \(T(n) = \varTheta (f(n))\)

摊还分析

 求数据结构的一系列操作的平均时间。可以保证某一系列操作在最坏情况下的平均性能

聚合分析

 确定 $ n $ 个操作的最坏复杂度 \(T(n)\) ,每一个操作的平均代价就是 \(\frac{T(n)}{n}\)

核算法

 对不同操作赋予不同的费用,称其为摊还代价。当一个操作的摊还代价大于实际代价的时候,将差额存起来,称为存款,后续操作如果有摊还代价小于实际代价时,我们将之前存的信用拿出一部分来抵消这里的差值。

 摊还代价不是随便取的,要构造一个摊还代价使得上面的存款不会被取完

势能法

将数据结构和势能关联起来

啥啊这是

标签:摊还,log,复杂度,时间,操作,代价,varTheta
From: https://www.cnblogs.com/jingyu0929/p/17540147.html

相关文章

  • 添加虚拟原点降低建图复杂度
    ##需求存在一个大小为$n$的点集$V_1$和大小为$m$的点集$V_2$,$V_1$中的每个点都需要向$V_2$中的每个点连一条边##$n*m$条边![](https://cdn.jsdelivr.net/gh/G-ghy/cloudImages@master/20211007155650.png)当$n$和$m$数值较大或者需要建图多次时,一定概率会超内存或者遍历时超......
  • 时间序列转图像:相对位置矩阵(Relative Position Matrix)-Python版复现
    时间序列分类(TSC)在时间序列数据挖掘任务中备受关注,已经应用到各个领域。随着卷积神经网络(ConvolutionalNeuralNetwork,CNN)的迅速发展,基于卷积神经网络的TSC方法直到最近才开始出现。因此,提出了一个新的深度学习框架,使用相对位置矩阵(RelativePositionMatrix,RPM)和卷积神经......
  • JS 处理字符串的时间差 及 比较时间的大小
    <!--JS处理字符串的时间差及比较时间的大小--><html><head><script>(function(){cc();})();functioncc(){vartime1="2012-02-20"vartime2="2015-02-14"vartmpBeginTime=newDate(tim......
  • jmeter: ${__P(THreadCount,)} 。P函数实现命令行变量,改变并发数和执行时间
         /export/apache-jmeter-5.4.1/bin/jmeter.sh-JrunTime300-JTHreadCount10 -n-tpinter_get.jmx-lpinter_test.jtl  ......
  • 爬天梯 + 放苹果 (记忆化搜索大大优化时间复杂度)
    记忆化搜索——即把搜过的地方记录下来,后面再搜的时候直接取就好了 题解:1#include<iostream>2usingnamespacestd;3#definelllonglong4constintN=100;5lla[N],n;6lldfs(lln)7{8if(n<=1)9return1;1011if(!a......
  • 解决MySQL sql 添加当前时间戳的具体操作步骤
    MySQLsql添加当前时间戳在实际的数据库应用中,我们经常需要对数据进行时间戳的记录,以便追踪数据的变化和操作时间。MySQL提供了多种方式来添加当前时间戳,本文将介绍几种常见的方法。1.使用NOW()函数NOW()函数是MySQL内置的一个函数,可以返回当前的系统日期和时间。我们可以在IN......
  • Java怎么比较一个时间与另一个时间相差10分钟 来解决一个具体问题的方案
    项目方案:比较时间差异简介在某些项目中,我们经常需要比较两个时间之间的差异,以便进行后续处理。本项目方案将介绍如何使用Java编程语言比较一个时间与另一个时间相差10分钟的方法。方案设计步骤1:获取时间对象首先,我们需要获取两个时间对象,以便进行比较。Java8中引入了新的时间......
  • 关于Azure-平台-Redhat-Linux-服务器时间同步的问题解决
    首先说明一下,关于Azure平台中国区,是没有RedhatLinux系统镜像的于是笔者这边是通过在Windows系统 Hyper-V管理器中安装完Redhat8.x操作系统后,最后将系统磁盘转换成转换为VHD格式然后经过一系列操作、最终在Azure平台上形成了自己的并且加固过的RedHatEnterpriseLinuxre......
  • 金融时间序列预测方法合集:CNN、LSTM、随机森林、ARMA预测股票价格(适用于时序问题)、相
    金融时间序列预测方法合集:CNN、LSTM、随机森林、ARMA预测股票价格(适用于时序问题)、相似度计算、各类评判指标绘图(数学建模科研适用)1.使用CNN模型预测未来一天的股价涨跌-CNN(卷积神经网络)使用CNN模型预测未来一天的股价涨跌数据介绍open开盘价;close收盘价;high最高价low最......
  • 卡尔曼滤波器:用R语言中的KFAS建模时间序列|附代码数据
    原文链接:http://tecdat.cn/?p=6762最近我们被客户要求撰写关于卡尔曼滤波器的研究报告,包括一些图形和统计输出。时间序列预测,ARIMA等传统模型通常是一种流行的选择虽然这些模型可以证明具有高度的准确性,但它们有一个主要缺点-它们通常不会解释“冲击”或时间序列的突然变化。......