我正在閱讀合併排序算法。我有個問題爲什麼我們將數組劃分爲合併排序中的一個元素
假設我們有一個下面的列表
列表= 5 4 1 3 6 8 9 7
首先劃分列表分成4個-4元件。我們所說的左,右側列表
5 4 1 3 and 6 8 9 7
然後除以5 4 1 3成以下
5 4 and 1 3
然後分成5個和4成
5 4
排序時,我們將開始從排序最後一步,直到第1步(我們有4-4個元素)
問題:無論如何,當我們分列表直到1-1元素,我們在everymoment排序和合並列表,那麼爲什麼不把列表除以4-4元素。因爲在這種情況下,我們也會合並列表。爲什麼迭代到1-1元素
噹噹前迭代有一個或兩個元素時,會發生_base case_。發生這種情況時,算法將返回一個元素,或者排序兩個元素。這假設你正在使用mergesort的遞歸實現,我認爲你是。 –
由於只有一個元素的數組已經排序。 – Shravan40
爲了闡明Tim Biegeleisen的評論,合併排序的自底向上/迭代實現跳過了數組的所有遞歸分割,並且首先假定一個大小爲N的數組是N個大小爲1的子數組。合併排序的大多數現實世界實現是自底向上合併排序的一些變體,如[timsort](http://en.wikipedia.org/wiki/Timsort)。 – rcgldr