【发布时间】:2015-05-06 18:17:57
【问题描述】:
我正在进行插入排序,想知道是否正确计算了比较次数和移动次数。比较是比较两个值的次数,而移动是移动的元素数,因此数字之间的交换将是 2 次移动。
public static int[] InsertionSort(int[] a) {
int j;
for(int i = 1; i < a.length; i++) {
int tmp = a[i];
for(j = i; j > 0 && (tmp < a[j-1]); j--) {
numCompares++;
a[j] = a[j-1];
numMoves++;
}
a[j] = tmp;
numMoves++;
}
return a;
}
【问题讨论】:
-
很好,有问题吗?
-
numCompares++ 和 numMoves++ 是否放置在正确的位置以获得正确的计数?
标签: java sorting insertion-sort