數組歸併排序

題目數組

      有兩個排序的數組A1和A2, 內存在A1的末尾有足夠多的空餘空間容納A2,請實現一個函數,把A2中的全部數組 插入到A1中而且全部的數字都是排序的。數據結構

分析函數

      1.在內存中數組是線性表數據結構,數據都是按順序儲存的,若是從數組頭部進行歸併排序, 會出現一個數字屢次複製的現象,內存開銷比較大,從後往前複製會減小數字移動次數,減少開支。3d

      2.數組長度固定,先用指針指向A1和A2以及歸併後A1的尾部下座標。指針

      3.比較A1和A2指針處數字大小,把較大的數字放到歸併後A1指針的位置,同時,較大數字所在數組和歸併後A1指針向前移一個位置。cdn

      4.若是A2中還有元素沒有插入到A1中,則所有插入到A1的前面。blog

案列排序

      以數組A1[7,8,9,11]和A2[4,5,8,10]爲例,初始時指針指向A1中的11,A2中的10,歸併後A1的尾部下座標內存

      

比較11和10,11大於10,把11複製到歸併後A1尾部,A1和歸併後A1指針向前移一個單位,A1指針指向9。it

      

同理,比較10大於9,把10複製到歸併後A1尾部,A2和歸併後A1指針向前移一個單位,A2指針指向8

      

依次排序,直到歸併成一個遞增數組。

參考代碼

      

相關文章
相關標籤/搜索