インタビューの質問10.01。マージソート配列(素朴な疑問)

説明タイトル:
配列へのA及びBは、端末AがBを収容するのに十分なバッファ空間が2つのソート後に与えられます。ソート組み込まA及びBの調製のための方法。

要素AとBの数を初期化し、mおよびnは。

例:

入力:
。A = [1,2,3,0,0,0]、M = 3
。B = [2,5,6]、N- = 3

出力:[1,2,2,3,5,6]

出典:滞在ボタン(LeetCode)
//leetcode-cn.com/problems/sorted-merge-lcci:リンク:httpsの
すべてのネットワークからの控除が著作権を保有。商業転載は、ソースを明記してください許可公式、非商用の転載をご連絡ください。
ソリューション:

class Solution {
    public void merge(int[] A, int m, int[] B, int n) {
        int right_border = A.length - 1;
        int cur = m - 1;
        for (int i = n - 1; i >= 0; ) {
            if(cur < 0){
                for (int j = 0; j <= right_border; j++) {
                    A[j] = B[j];
                }
                break;
            }
            if (A[cur] <= B[i]) {
                A[right_border] = B[i];
                right_border--;
                i--;
            } else {
                A[right_border] = A[cur];
                cur--;
                right_border--;
            }
        }
    }
}
公開された242元の記事 ウォンの賞賛5 ビュー4372

おすすめ

転載: blog.csdn.net/weixin_43105156/article/details/104630265