0

我只是想仔细检查一下我在插入排序方法中的比较计数器是否正确。我想是的,但我只是想确定一下。这是icount++;朝向底部。

谢谢阅读。

public static void insertionsort(int[] arr)
  {
    int i, j, newValue;
    for (i = 1; i < arr.length; i++)
      {
        newValue = arr[i];
        j = i;
        while (j > 0 && arr[j - 1] > newValue)
          {
            icount++;
            arr[j] = arr[j - 1];
            j--;
          }
        arr[j] = newValue;
      }
  }
4

1 回答 1

0

如果您想计算数组元素之间的比较次数,那几乎是正确的,但是当您找到某个位置(而不是开始处)插入下一个元素时,您错过了循环终止的情况。

于 2013-11-08T22:39:15.833 回答