artificial-intelligence - 这个算法问题的时间复杂度是多少?
问题描述
* 一种搜索方法的时间复杂度为 O(n2),其中 n 是要搜索的空间中的状态数。如果搜索一千个状态的空间需要 1 秒,那么搜索一百万个状态的空间大约需要多长时间?*
我发现它大约需要 12 天,但我认为我发现的方式是非常错误的。我做了 100 万 ^2 / 86400(一天中的秒数)并找到了 11.56,所以大约 12 天。有没有更好更有效的解决方案?
解决方案
几乎没有足够的信息来回答这个问题。请参阅Big-O 描述。
O(N^2)仅表示算法的执行时间将由 N^2 项支配。随着 N 变大,两个执行时间之间的比率将逐渐接近它们比率的平方。它没有说明特定值的执行时间。
让我们保持简单,假设设置开销与数组初始化O(N)和一些系统启动,一个常数。这使得执行时间
t = a * N^2 + b * N + c
对于 a、b 和 c 的某些值。即使我们知道这是方程形式,我们也没有足够的信息来解决仅给定一个 ( t
, N
) 数据点的问题。我们没有足够的知识来推导t
.N= 10^6
我怀疑提出这个问题的人正在寻找无效的解决方案,做出无根据的假设,即 N=1000 已经使所有较小的项变得无足轻重。在这种情况下,只需按大小比的平方放大:
N1 / N2 = 10^6 / 10^3 = 10^3
Scale up by N^2, or (10^3)^2 = 10^6
这给了你 10^6 秒,或者一天多一点;我会把数学留给你。
推荐阅读
- node.js - 尝试发帖时可能出现快递问题
- javascript - 为什么我的项目上的加载更多内容按钮不起作用?
- python - .txt 文件函数读/写位置
- php - 我如何获取最新的对象 laravel
- flutter - 没有带有名称的命名参数/没有为类定义方法/
- javascript - 将 Shopify/draggable 与 Alpine.js x-for 指令一起使用
- visual-studio - Visual Studio 新的 .NETCore(3.1 和 net5.0)项目在依赖项上显示黄色三角形,在清理和构建时失败,但没有显示错误
- java - “java.lang.StringIndexOutOfBoundsException”不允许我访问下一个用户输入
- word2vec - word2vec Google News 向量是如何训练的?
- vue.js - 无法加载配置“eslint-plugin-vue”以从