执行if语句的频率如何?

时间:2012-11-20 23:54:10

标签: java if-statement nested-loops

  

可能重复:
  Determining as a function of n how often the statement incrementing the variable count is performed

好的,所以我仍然是分析算法的新手,并希望能够在此分享任何帮助。我试图确定if语句作为n的函数执行的频率。我相信外部循环是n,并且还认为内部循环是n,但是if语句有问题。任何提示都表示赞赏,谢谢。  这是循环:

for (int k = 0; k < n.length;  k++) {

     for (int j = k; j > 0; j--) {

          if (n[j] < n[j-1]) {

            int x = n[j];
            n[j] = n[j-1];
            n[j-1] = x;

3 个答案:

答案 0 :(得分:4)

如果我正在做这个家庭作业问题,我会从n开始用一些小数组(所以n.length很小),比如3或4,然后手工完成。你很快就会看到这种模式。

答案 1 :(得分:1)

此示例可能会对您有所帮助

int[] n = new int[] { 1, 2, 3, 4 };
int count =  0;
for (int k = 0; k < n.length; k++) {
    for (int j = k; j > 0; j--) {
        count++; // if program reaches here, the below 'if' condition will be executed
        if (n[j] < n[j - 1]) {
            int x = n[j];
            n[j] = n[j - 1];
            n[j - 1] = x;
        }
    }
}
System.out.println("If condition executed - "+count+" times.");

答案 2 :(得分:1)

上面有两个答案!

要获得明确的呼叫次数,请插入计数器并执行一些println / printf-Debugging(或使用记录器)。

为了进一步了解这些循环的内容并计算复杂性,最好使用低n值进行手动迭代。

您应该按照上面的两个答案来全面了解您的作业!