有序數組合並

題目描述

有兩個從小到大排序以後的數組A和B,其中A的末端有足夠的緩衝空容納B。請編寫一個方法,將B合併入A並排序。

給定兩個有序int數組AB,A中的緩衝空用0填充,同時給定A和B的真實大小int n和int m,請返回合併後的數組。

class Merge {
public:
    vector<int> mergeAB(vector<int> A, vector<int> B, int n, int m) {
        // write code here
      int i=n-1,j=0;//i指向A的最後一個元素,j指向B的第一個元素;
      int len=n;//記錄A數組的長度;
      for(j;j<m;j++)
      {
        while(A[i]>B[j])
        {
         	A[i+1]=A[i];
            i--;
        }
        A[i+1]=B[j];
        len++;
        i=len-1;
       }
        return A; 
    }
};


發佈了41 篇原創文章 · 獲贊 2 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章