2
使用從this link代碼,所述merge
函數不具有while
環路,用於從臨時(helper
)陣列到原始(numbers
)陣列的右側部分的剩餘j
元件。合併排序:爲什麼右側沒有剩餘的元素?
它仍然正常工作。我想知道是否有人能夠幫助解釋爲什麼j
總是達到high
(因爲helper
陣列的右側沒有剩餘的元素需要簡單地複製到numbers
陣列中)。
使用從this link代碼,所述merge
函數不具有while
環路,用於從臨時(helper
)陣列到原始(numbers
)陣列的右側部分的剩餘j
元件。合併排序:爲什麼右側沒有剩餘的元素?
它仍然正常工作。我想知道是否有人能夠幫助解釋爲什麼j
總是達到high
(因爲helper
陣列的右側沒有剩餘的元素需要簡單地複製到numbers
陣列中)。
函數merge(low, middle, high)
從將numbers
的元素複製到helper
數組開始。
這就是爲什麼numbers
數組已經有了元素,並且沒有意見將它們從helper
中複製回來。
哦!所以它是這樣的:因爲'j'指向數組的後半部分,所以我們不需要將剩餘的從索引'j'排序的元素從'j'複製回'high',因爲它們已經被先前的遞歸調用排序爲'合併「並且已經存儲在'數字'數組中。我是否正確?請讓我知道。 – Daksh
@Daksh正確! – Slava
謝謝! :-) – Daksh