@@ -0,0 +1,2414 @@
+package main.algorithm.leetcode;%0A%0Aimport org.junit.Test;%0A%0Aimport java.util.Arrays;%0A%0A/**%0A * Title : main.algorithm.leetcode %3Cbr%3E%0A * Description :%0A *%0A *%0A * @author chile%0A * @version 1.0%0A * @date 2019/11/11 15:48%0A */%0Apublic class MergeSortedArray %7B%0A%0A    class Solution3 %7B%0A        public void merge(int%5B%5D nums1, int m, int%5B%5D nums2, int n) %7B%0A            for (int i = 0; i %3C n; i++) %7B%0A                nums1%5Bm + i%5D = nums2%5Bi%5D;%0A            %7D%0A            quickSort(nums1, 0, m + n - 1);%0A        %7D%0A%0A        private void quickSort(int%5B%5D nums, int p, int r) %7B%0A            if (p %3C r) %7B%0A                int q = partition(nums, p, r);%0A                quickSort(nums, p, q - 1);%0A                quickSort(nums, q + 1, r);%0A            %7D%0A%0A        %7D%0A%0A        private int partition(int%5B%5D nums, int p, int r) %7B%0A            int x = nums%5Br%5D;%0A            int i = p, j = p;%0A            for (; j %3C r; j++) %7B%0A                if (nums%5Bj%5D %3C= x) %7B%0A                    exchange(nums, i, j);%0A                    i++;%0A                %7D%0A            %7D%0A            exchange(nums, i, r);%0A            return i;%0A        %7D%0A%0A        private void exchange(int%5B%5D nums, int i, int j) %7B%0A            int temp = nums%5Bj%5D;%0A            nums%5Bj%5D = nums%5Bi%5D;%0A            nums%5Bi%5D = temp;%0A        %7D%0A    %7D%0A%0A    class Solution %7B%0A        public void merge(int%5B%5D nums1, int m, int%5B%5D nums2, int n) %7B%0A            int%5B%5D result = new int%5Bm + n%5D;%0A%0A            for (int i = 0, j = 0; i + j %3C result.length;) %7B%0A                if (i %3C m && j %3C n) %7B%0A                    if (nums1%5Bi%5D %3E nums2%5Bj%5D) %7B%0A                        result%5Bi + j%5D = nums2%5Bj++%5D;%0A                    %7D else %7B%0A                        result%5Bi + j%5D = nums1%5Bi++%5D;%0A                    %7D%0A                %7D else %7B%0A                    if (i %3C m) %7B%0A                        result%5Bi + j%5D = nums1%5Bi++%5D;%0A                    %7D%0A                    if (j %3C n) %7B%0A                        result%5Bi + j%5D = nums2%5Bj++%5D;%0A                    %7D%0A                %7D%0A            %7D%0A%0A            System.arraycopy(result, 0, nums1, 0, m + n);%0A        %7D%0A%0A%0A        private void exchange(int%5B%5D nums, int i, int j) %7B%0A            int temp = nums%5Bj%5D;%0A            nums%5Bj%5D = nums%5Bi%5D;%0A            nums%5Bi%5D = temp;%0A        %7D%0A    %7D%0A%0A    @Test%0A    public void test1() %7B%0A        int%5B%5D nums1 = %7B1, 2, 3, 0, 0, 0%7D;%0A        int%5B%5D nums2 = %7B2, 5, 6%7D;%0A        new Solution().merge(nums1, 3, nums2, 3);%0A        System.out.println(Arrays.toString(nums1));%0A    %7D%0A%0A%7D%0A

merge sorted array