java - 程序代码的运行时间
问题描述
我需要你的帮助。请问你能帮帮我吗。
输入:具有 n 个自然数的数组 A。
count = 0
for each subset S of 4 elements of A do:
sum = "sumFormula" from i = 0 to 3 S[i]
for i from 0 to n-1 do:
if sum == A[i]:
count = count+1
return count.
我不明白。需要什么时间?
我的想法:我认为它具有指数运行时间,因为当我将输入大小加倍时,它是平方的。但我不确定。
解决方案
算法的很多复杂性是隐藏的。
尤其是:
对于 A 中 4 个元素的每个子集 S
这些子集是如何确定的?
具有 n 个元素的集合有 2^n 个可能的子集。简单地说,第一步可能是指数运行时间的原因。
该算法的其余部分本质上是计算每个子集的总和。这不会对运行时产生太大影响。
推荐阅读
- python - 使用 ansible_facts 捕获大小
- python - 分别存储不同行的csv文件
- sql - 标准 SQL (BigQuery) 中的用户定义数据类型?
- python - 忽略黑色格式化程序的 pyproject.toml 文件中的 Django 迁移
- javascript - eval()函数的基本分析
- python - 具有相同名称和数据的熊猫数据框合并列以逗号分隔
- python - 在 Matplotlib 上更改 3D 绘图的纵横比
- java - 如何从另一个通过 Bungeecord 运行的 Paper Spigot 服务器获取玩家数量
- swift - 在 Swift 中是否可以同时返回一个 Int 和一个 int 列表?
- android - 在开发中反应原生应用程序时如何在移动设备中加载本地主机图像?