涉及多个变量的程序的时间复杂度

2023-12-06

最近,我被要求创建一个程序来查找文本片段中的最佳匹配。我已经成功编写了这个程序,但我确实对其时间复杂度有疑问。

问题定义如下。

给定一个查询,查找文档中出现的查询词并突出显示最佳标记。

我的程序花费的时间

O(m + n + p)

here

m = 文档长度(以字符为单位)

n = 查询的长度(以字符为单位)

p = 文档中的总匹配数

在这种情况下,最大的术语始终是“m”,因为在大多数情况下,文档将比查询本身更大。

我可以安全地推断出我的程序的时间复杂度是 O(m) 吗?


不,你不能。根据大 O 表示法你的职能m是算法运行实际时间的上限(如果有一个常数)M比如实际时间总是小于或等于M*m。以文档大小为零(空文档)但有人使用正数字符查询它的情况为例。在这种情况下的上限将是0(加上一个常量),但程序运行的实际时间可能比这个长。所以你的程序不能说是O(m).

换句话说,“大多数情况”是不够的:您必须证明您的算法将在该上限内执行all cases.

Update:同样可以这样说p: 常识说p总是小于m,但这仅在搜索词不重叠的情况下成立。以文档为例aaaaaa(m=6) 和搜索词a, aa and aaa(n=3)。在本例中,出现了 6 次a, 5 of aa和 4 个aaa, so p = 15。尽管这是一种非常不可能的情况(与空文档相同),但仍然需要您采取p在您的复杂性分析中考虑到。所以你的程序必须被描述为O(m + n + p)正如你最初所说。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

涉及多个变量的程序的时间复杂度 的相关文章

  • C# 中单个 & 符号的第二个含义是什么?

    我在 C 中使用了单个与号 来表示 检查second条件语句即使第一个是false 但以下似乎是不同的意思 of 总而言之 谁能解释一下如何i 1在下面的例子中有效吗 List
  • 为什么 System.nanoTime() 比 System.currentTimeMillis() 慢(性能)?

    今天我做了一个快速基准测试来测试速度性能System nanoTime and System currentTimeMillis long startTime System nanoTime for int i 0 i lt 1000000
  • 为什么 Java 11 中对于空白字符串 String.strip() 比 String.trim() 快 5 倍

    我遇到过一个有趣的场景 因为某些原因strip 针对空白字符串 仅包含空格 明显快于trim 在Java 11中 基准 public class Test public static final String TEST STRING 3 w
  • jQuery - 提高处理 XML 时的选择器性能

    我正在处理一个 XML 文件 当使用 XPath 样式选择器选择节点时 该文件的性能非常慢 这是运行特别慢的部分代码 for i 0 i
  • PhoneGap 1.4 封装 Sencha Touch 2.X - 性能怎么样?

    我正在构建一个多平台平板电脑应用程序 仅使用其 Webview 使用 Phonegap 1 4 对其进行包装 然后使用 Sencha Touch 2 框架发挥我的魔力 我所说的多平台是指 iOS 5 X 和 Android 3 0 目前 到
  • 优化 LATERAL join 中的慢速聚合

    在我的 PostgreSQL 9 6 2 数据库中 我有一个查询 该查询根据一些股票数据构建计算字段表 它为表中的每一行计算 1 到 10 年的移动平均窗口 并将其用于周期性调整 具体来说 CAPE CAPB CAPC CAPS 和 CAP
  • 当我使用可变参数而不是常量参数时,为什么我的内联表 UDF 慢得多?

    我有一个表值内联 UDF 我想过滤该 UDF 的结果以获得一个特定值 当我使用常量参数指定过滤器时 一切都很好 并且性能几乎是瞬时的 当我使用可变参数指定过滤器时 它会花费明显更大的时间块 大约是逻辑读取的 500 倍和持续时间的 20 倍
  • Haskell:IORef 的性能

    我一直在尝试在 Haskell 中编码一个需要使用大量可变引用的算法 但与纯粹的惰性代码相比 它 也许并不奇怪 非常慢 考虑一个非常简单的例子 module Main where import Data IORef import Contr
  • 如何最大限度地提高服务器性能?

    我一直在努力了解性能和可扩展性 并想知道开发人员 系统管理员正在做什么来提高他们的系统的效率 为了标准化答案 如果您能尽力回答以下任一问题 将会有所帮助 Profile Magazine publication on Joomla Jobs
  • python 日志记录会刷新每个日志吗?

    当我使用标准模块将日志写入文件时logging 每个日志会分别刷新到磁盘吗 例如 下面的代码会将日志刷新 10 次吗 logging basicConfig level logging DEBUG filename debug log fo
  • * 到底有多慢?

    大家都表示 选择器非常慢 但它到底有多慢呢 我总是试图避免它 但有时它非常有用 例如 h1 margin top 1em 简单来说 通用选择器 速度只与页面上的元素一样慢 Since 从右到左匹配浏览器获取每个元素并将其与所有候选规则进行匹
  • R、Rcpp 与 Armadillo 中矩阵 rowSums() 与 colSums() 的效率

    背景 来自 R 编程 我正在扩展到 C C 形式的编译代码Rcpp 作为循环交换 以及一般的 C C 效果的实践练习 我实现了 R 的等效项rowSums and colSums 矩阵的函数Rcpp 我知道它们以 Rcpp 糖的形式存在 并
  • linux perf:如何解释和查找热点

    我尝试了linux perf https perf wiki kernel org index php Main Page今天很实用 但在解释其结果时遇到了困难 我习惯了 valgrind 的 callgrind 这当然是与基于采样的 pe
  • NHibernate - CreateCriteria 与 CreateAlias

    假设以下场景 class Project public Job Job class Job public Name 假设我想使用 Criteria API 搜索其 Job 名称为 sumthing 的所有项目 我可以使用 CreateAli
  • Javascript 定时通知 - setTimeout、setInterval

    我正在创建一个网络应用程序 允许用户管理日历 CRUD 事件 任务 提醒等 我正在尝试实现一个功能 他们将在事件 任务前 x 分钟收到弹出提醒 根据我的理解 使用 javascript 确实只有一种方法可以做到这一点 登录时 检查数据库中是
  • 如何提高包含大量小图像的 UCollectionView 的性能?

    在我的 iOS 应用程序中我有UICollectionView显示大约 1200 个小 35x35 点 图像 图像存储在应用程序包中 我正确地重用了UICollectionViewCell但仍然存在性能问题 具体取决于我处理图像加载的方式
  • 为什么 Collections.counter 这么慢?

    我正在尝试解决罗莎琳德的基本问题 即计算给定序列中的核苷酸 并在列表中返回结果 对于那些不熟悉生物信息学的人来说 它只是计算字符串中 4 个不同字符 A C G T 出现的次数 我期望collections Counter是最快的方法 首先
  • 为什么改变对象的 [[prototype]] 会降低性能?

    来自 MDN 文档standard setPrototypeOf功能 https developer mozilla org en US docs Web JavaScript Reference Global Objects Object
  • 使用 React.forwardRef 与自定义 ref prop 的价值

    我看到React forwardRef从反应文档来看 似乎是将引用传递给子功能组件的认可方式 const FancyButton React forwardRef props ref gt
  • TypeScript 编译速度极慢 > 12 秒

    只是把它放在那里看看其他人是否也遇到这个问题 我已经使用 webpack 作为我的构建工具 使用 typescript 构建了一个 Angular 2 应用程序 一切都运行良好 但是我注意到 typescript 编译超级超级慢 我现在只有

随机推荐

  • 使用一行代码合并两个具有不同索引的数据帧,同时保留主数据帧的索引

    我有两个数据框 第一个 df1 是 df1 pd DataFrame col1 0 1 col2 0 1 df1 df1 rename index k v for k v in zip 0 1 zero one print df1 col1
  • 订阅事件时执行函数

    当有人订阅我在课堂上制作的事件时 是否可以执行一些代码 简短的说明 我需要配置一台外部电脑 以便在有人订阅此事件时向我发送数据 这样当收到该数据时 我可以抛出该事件 public class test public event EventH
  • Cos(90) 返回一个非常接近 0 的值,但我需要 0?

    temp x btm left 0 temp y btm left 1 的值 angle 90 Moving the bottom left coordinates btm left real temp x btm left cos ang
  • 需要工具提示:将Google Sheet现有数据更改为DataTable

    Problem 我看到的所有文档都使用 DataTable 将数据写入脚本本身 我需要从现有行调用此工具提示数据 我需要了解 HTML 页面和 google 工作表中嵌入图表之间的代码差异 Goal 我有一个需要自定义工具提示的散点图 我需
  • 使用预签名 URL 通过 cURL 将文件加载到 S3

    我获得了一个预签名 URL 用于在 S3 存储桶上上传文件 这是卷曲命令 curl v T dansero jpg https ss files dev s3 ap southeast 2 amazonaws com dansero jpg
  • 如何在Robot Framework中实现java库

    如何在 Eclipse 中创建库 然后将其导入 Robot FrameWork 中 我现在进行了很多搜索 但没有任何指南可以帮助我 您需要执行以下操作 创建您的 java 库 运行机器人框架jython版本时将其添加到类路径中 创建您的 j
  • 如果失败,请重试 SFTP?

    我正在使用 SSH NET 上传 但如果进程失败 我想重试 sftp 文件 我有这段代码 但我认为这不是处理重试的最佳方法 处理这个问题的最佳方法是什么 var exceptions new List
  • 在 Android AsyncTask 中获取 JSON

    我正在尝试获取 JSON 但我必须在 AsyncTask 中执行此操作 因为我在 logcat 中获取了它AndroidRuntime 18153 Caused by android os NetworkOnMainThreadExcept
  • Docker Compose 连接 ECONNREFUSED 172.18.0.4:3306

    当我使用以下命令构建项目的容器时 sudo docker build t PROJECT NAME 然后我通过这个 Docker Compose 配置下载 mysql 的镜像 db image mysql restart always po
  • 在 Windows Phone 8.1 上使用 MediaCapture 时拍摄的照片为黑色

    我正在使用 MediaCapture 捕获照片并存储它们 它可以在模拟器中运行 但当在真实手机 诺基亚 Lumia 530 上运行该应用程序时 捕获的照片只是黑色 它们具有正确的大小并且文件具有一定的字节长度 但是当显示照片时它是黑色的 请
  • 记忆游戏的 GUI 组件

    我正在做作业 所以我不要求代码 我想自己做这个 顺便说一句 我再次陷入 GUI 部分 并且代码部分没有什么问题 首先是按钮大小和图像大小 我没有使用按钮大小的方法 只是将图像设置为按钮的图标 但正如您在下面看到的 按钮不适合图像 第二件事是
  • 反序列化会导致列表条目的副本

    我想创建一个非常通用的模型层 它也可以作为 JSON 传递 一个模型应显示 RaspberryPi2 的 LED 面板 由于我希望对类进行尽可能接近现实的建模 因此我强制列表始终具有 8 8 个 LED 该类看起来像这样 public cl
  • 用子进程包装 cmd.exe

    我尝试使用以下程序在Windows下包装cmd exe 但它不起作用 它似乎在等待某些东西并且不显示任何内容 知道这里出了什么问题吗 import subprocess process subprocess Popen cmd exe sh
  • iphone sdk CGAffineTransform 获取物体的旋转角度

    我如何计算任何给定对象 即 uiimageview 的旋转角度 从技术上讲你不能 因为转换可以包括skew将图像变成平行四边形的操作 并且旋转角度不再定义 无论如何 由于旋转矩阵生成 cos x sin x 0 sin x cos x 0
  • VS2010 - 将 html 代码格式分配给 T4 (.tt) 文件

    我在 VS2010 中有一个 T4 文本模板 tt 主要用于生成 HTML 代码 基本上是一些包含和 JavaScript 是否可以指定 HTML 代码格式 颜色等 到该 tt 文件 情况 T4 想要有 更新Marcio Barcellos
  • MYSQL:如何查询JSON数组包含特定标签的位置

    MySQL 5 7 24 假设我有 3 行 如下所示 ID PK Name VARCHAR Data JSON 1 Admad label Color value Red label Age value 40 2 Saleem label
  • Struts 2重构代码以避免OGNL静态方法访问

    Struts 2 2 3 20 提到 将禁用对从表达式访问静态方法的支持 很快 请考虑重构您的应用程序 以避免进一步 问题 我们在验证器中使用了 OGNL 静态调用 ExpressionValidator expression foo ba
  • Spark SQL 中按日期分组的聚合

    我有一个包含时间戳的 RDDtime长类型 root id string nullable true value1 string nullable true value2 string nullable true time long nul
  • 如何使用命令行将新的 MySQL 数据库结构从开发网站迁移到生产网站?

    我有两个网站环境 独立的服务器 Media Temple DV 开发和生产 我们开始在生产上构建站点 然后获得了开发服务器 因此我最初使用如下命令将生产数据库移动到开发 mysqldump a u USERNAME p DATABASE g
  • 涉及多个变量的程序的时间复杂度

    最近 我被要求创建一个程序来查找文本片段中的最佳匹配 我已经成功编写了这个程序 但我确实对其时间复杂度有疑问 问题定义如下 给定一个查询 查找文档中出现的查询词并突出显示最佳标记 我的程序花费的时间 O m n p here m 文档长度