我基本上处理以下问题,在我试图改变插入排序,这样也可以将其删除计数器复制品。以下是插入排序。
public void insertSort() {
for (int i = 1; i < nElems; i++) {
int temp = a[i];
int j = i;
while (j > 0 && temp <= a[j - 1]) {
a[j] = a[j - 1];
j--;
}
a[j] = temp;
}
}
我不确定是否正确理解了方法。如果我正确理解这一点(请告诉我,如果我错了或不),该方法建议我应该在inner while循环开始之前遍历整个数组,并标记任意数字(如-1)的任何副本。然后当内部while循环启动时,它将整理数组,并将所有重复项一起堆叠起来。
如果是这种情况,那么我可以在插入排序开始之前简单地比较数组中的每个元素,并标记任何重复项 - 1,然后插入排序将照顾排序部分。之后我可以减少arraySize。
但是我觉得我还没有正确理解,所以有人可以提出任何建议吗?
什么是您正在阅读的书的名称? –
Java中的数据结构和算法! @KickButtowski关于我发布的问题的任何建议?:) – user1010101
我即将离开我的工作稍后再看看它 –