正确计算插入排序比较的次数

时间:2020-10-03 12:44:52

标签: java time-complexity insertion-sort

int comparisons = 0;
for (int i = 1; i < input.length; i++) {
  int j = i;
  while (j > 0 && comp.compare(input[j - 1], input[j]) > 0) {
    if (comp.compare(input[j - 1], input[j]) > 0)
      comparisons++;
    E temp = input[j - 1];
    input[j - 1] = input[j];
    input[j] = temp;
    j--;
  }
  comparisons++;
}

我正在尝试计算插入排序中的比较次数。但是,我的比较与预期的JUnit值不正确。

输入: {9,5,6,7,2,8}期望:11但还是13

输入: {“如何”,“关于”,“ dey”,“ da”,“熊”};期望:7但是8

测试输入的期望值是否不正确,或者是否缺少某些边缘情况?

1 个答案:

答案 0 :(得分:0)

即使条件为假并且命令:comparisons++

,也会进行比较。

仅在为true时发生;)

相关问题