合併兩個已排序數列演算法

步驟

數列A[@1@,3,5,7]

數列B[@2@,4,6,8]

已合併[]

• 比較@1,2@

數列A[@1@,3,5,7]

數列B[@2@,4,6,8]

已合併[$1$]

• 複製最小值$1$到已合併陣列

數列A[1,@3@,5,7]

數列B[@2@,4,6,8]

已合併[$1$]

• 比較@3,2@

數列A[1,@3@,5,7]
數列B[@2@,4,6,8]
已合併[$1,2$]
• 複製最小值$2$到已合併陣列
數列A[1,@3@,5,7]
數列B[2,@4@,6,8]
已合併[$1,2$]
• 比較@3,4@
數列A[1,@3@,5,7]
數列B[2,@4@,6,8]
已合併[$1,2,3$]
• 複製最小值$3$到已合併陣列
數列A[1,3,@5@,7]
數列B[2,@4@,6,8]
已合併[$1,2,3$]
• 比較@4,5@
數列A[1,3,@5@,7]
數列B[2,@4@,6,8]
已合併[$1,2,3,4$]
• 複製最小值$4$到已合併陣列
數列A[1,3,@5@,7]
數列B[2,4,@6@,8]
已合併[$1,2,3,4$]
• 比較@5,6@
數列A[1,3,@5@,7]
數列B[2,4,@6@,8]
已合併[$1,2,3,4$]
• 複製最小值$5$到已合併陣列
數列A[1,3,5,@7@]
數列B[2,4,@6@,8]
已合併[$1,2,3,4$]
• 比較@6,7@
數列A[1,3,5,@7@]
數列B[2,4,@6@,8]
已合併[$1,2,3,4,5$]
• 複製最小值$6$到已合併陣列
數列A[1,3,5,@7@]
數列B[2,4,6,@8@]
已合併[$1,2,3,4,5,6$]
• 比較@7,8@
數列A[1,3,5,@7@]
數列B[2,4,6,@8@]
已合併[$1,2,3,4,5,6,7$]
• 複製最小值$7$到已合併陣列
數列A[1,3,5,7]
數列B[2,4,6,@8@]
已合併[$1,2,3,4,5,6,7,8$]
• 最後複製$8$到已合併陣列

1. 有三個陣列

數列A[1,3,5,7]

數列B[2,4,6,8]

已合併[]

2. 數列A的1與數列B的2比較,小的1存入已合併陣列。

3. 數列A的3與數列B的2比較,小的2存入已合併陣列。

4. 依此類推最後已合併陣列就是排序後數列。


Python實現


沒有留言:

張貼留言

寫下幸福點子吧!