我基本上處理以下問題,在我試圖改變插入排序,這樣也可以將其刪除計數器複製品。以下是插入排序。
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
我即將離開我的工作稍後再看看它 –