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

问题描述

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

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)