它是O(n + m)。每個陣列的每個元素都會與某些東西進行比較。
你可以看看用類似問題Time complexity for merging two sorted arrays of size n and m描述的算法。最好的情況是你在'複製休息'部分花了很多時間,最糟糕的情況是你必須提前兩個數組的計數器直到全部長度。隨時提出更具體的問題。
您可以通過考慮特定數據集來計算特定數字。例如。爲A{1001,1002,1003}
和B{1,2, ..., 999, 1005}
。最壞的情況是通過對最後一個元素(即嚴格的數字是n + m-1)執行「複製休息」片段來實現的。
999 comparisons: A{1001} vs B{1,..,999} -> B elements merged
1 comparison: A{1001} vs B{1005} -> A merged
1 comparison: A{1002} vs B{1005} -> A merged
1 comparison: A{1003} vs B{1005} -> A merged
我們與一個做在這一點上和B的最後一個元素是使用「複製休息」一塊合併
http://sorting.at/排序算法可視化網站 – sova