[英]Number of Comparison in Worst Case of Merging Two Sorted Array?
給定兩個大小為n
和m
排序數組A, B
。 我正在尋找合並這兩個數組的最差比較數。
1)n + m-1
2)最大(n,m)
3)分鍾(m,n)
4)百萬
我知道這不是一個好問題,因為沒有提到合並算法,但是我認為,正常的合並排序算法-合並步驟通常應用n + m -1
比較,其中一個列表的大小為n,另一個列表的大小為n尺寸為m 使用此算法是合並兩個排序列表的最簡單方法。 任何專家都可以幫助我,我選擇(1)對嗎?
可以從文檔中輕松找到:
復雜
最多std :: distance(first1,last1)+ std :: distance(first2,last2)-1個比較。
所以是第一。 (是的,它假設標准委員會的正確性是正確的,但這不是一個難題。)
選項4顯然是錯誤的,因為n + m-1的增長速度比n * m慢,因此我們已經有了更好的估計。
在此反例中,選項3為假:
[4], [1, 2, 6, 7]
需要至少兩個比較。 選項2反例:
[1,6], [2,5]
需要進行3個比較:
1 < 2?, 6 < 2?, 6 < 5?
假設m <n,則至少進行m次比較,最多進行n + m-1次比較(最壞的情況)。 因此,假設最小列表中的所有元素排在最前面,則比較的最小次數為min(n,m)。 假設最簡單的意思是最好的情況,那么答案3是正確的答案。 對於最壞的情況,答案1是正確的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.