algorithm - 双循环与操作次数的关系

标签 algorithm

我的老师告诉我,基本上每当我们有一个循环和一个嵌套循环时,操作数如下 n(n+1)/2。

但是,我查看了一些程序后发现情况不太可能如此。

for(i=0, i<n, n++)
 for(j=i, j<n, j++)
 {x=i+j}

在这种情况下,它将是 n(n+1)/2,忽略 i=0、j=0、n++、j++ 和 x=i+j,但这里:

for(i=0, i<n, n++)
 for(j=0, j<n, j++)
 {x=i+j}

除非我记错了,否则应该是 n^n。

有人能准确地告诉我什么时候两个循环有 n(n+1)/2 次操作吗?我现在有点困惑。

最佳答案

在您的第一个示例中,该操作将执行 n 次,然后执行 n-1 次,然后执行 n-2 次。如果我没记错的话,这是 n(n-1)/2,但您可能是对的,它是 n(n+1)/2。无论哪种方式,差异都非常小。

在您的第二个示例中,它将完成 n 次,然后是 n 次,然后是 n 次...直到您完成 nn 次——换句话说,n^2

关于algorithm - 双循环与操作次数的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16453257/

相关文章:

algorithm - 画笔冲压算法/技术

algorithm - 使用区间树的最大区间重叠

java - 如何用循环解决图形

algorithm - 在 3 个未知变量上找到 N 多项式方程组的数值解的快速算法是什么?

c++ - 唐叶 C++ 实现

C# 圣诞树

algorithm - 参数相关的 PRNG

c# - 连通分量标记算法优化

c++ - 评估一个数是否是 4 的整数幂

c# - 组合不重复