簡體   English   中英

合並排序是否有最好或最壞的情況?

[英]Does mergesort have a best or worst case scenario?

據我了解,mergesort 的工作方式是將數組拆分為不同的子數組,直到每個新數組只包含一種內容 f.ex。 數字。 我聽說有時數組會被拆分,直到有新的 arrays 包含兩個數字,但我不知道什么時候會出現這種情況。 這些新的 arrays 然后在這樣做的同時合並和排序。

在谷歌搜索時,我發現平均、最佳和最壞情況都是 n*log(n),我問自己算法排序所需的時間是否存在差異。

我不知道算法排序所花費的時間是否與數組中合並之前的數字數量有關。

我從這里在 java 中有一個合並排序的實現,我也從那里得到了解釋。

是的,它確實。

最好的情況大約是最壞情況的一半。

對於發生的每個合並步驟,當一個排序子列表的最大元素小於其相對子列表的第一個元素時,最好的情況發生。 僅比較相反列表中的一個元素,這將每個合並步驟中的比較次數減少到 N/2。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM