[英]properly count the number of insertion sort comparisons
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
输入:{ "how", "about", "dey", "da", "bears" }; 期望:7 但是 8
测试输入的预期值不正确还是我遗漏了一些边缘情况?
即使条件为假并且命令: comparisons++
也会comparisons++
只有在它为真时才会发生;)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.