【发布时间】:2018-03-11 13:41:29
【问题描述】:
我是算法设计和分析的新手。我有一个嵌套循环和 if 语句。我无法确定 if 语句中正在执行的原始操作。声明如下:
for (i=0;i<n;i++)
for(j=0;j<n;j++)
if(i!=j and A[i]==A[j])
duplicate=true
break;
if(duplicate)
break;
我正在确定 if 语句中的操作数如下:
Accessing array element 2 Times
comparing i and J
Comparing A[i] and A[j]
Comparing AND Operator
这一切都进行了 N 次。我猜测 if 语句中原始操作的数量是否正确?如果没有,请帮我纠正这个问题。谢谢
【问题讨论】:
-
你应该添加一个语言标签,但是这样写,外层循环只会运行一次;最后一个
break将在第一次通过后退出。它不“知道”if测试的结果——您必须在外循环中检查duplicate以决定是否中止外循环。 -
@McGuireV10 抱歉。我忘记了一个声明。请再看一遍问题。
-
我假设第一个
if下面的两个语句实际上应该在if内? -
这就是我问语言应该是什么的原因。尽管通过这个简单的示例很容易猜到。但是,是的,Jamshaid,这就是我要说的。
-
@McGuireV10 虽然这很容易。但正如我之前所说,我是分析新手,这就是为什么我很困惑,如果 i != j 在这种情况下出错,将执行多少操作。或者如果 和 的两边都为真,那么要计算多少。
标签: algorithm array-algorithms