@@ -0,0 +1,1534 @@
+package com.home;%0A%0Apublic class GenerateAllPossibleSortedArrays %7B%0A    public static void main(String%5B%5D args) %7B%0A        GenerateAllPossibleSortedArrays c = new GenerateAllPossibleSortedArrays();%0A        c.run();%0A    %7D%0A%0A    private void run() %7B%0A        int%5B%5D a = %7B4, 10, 15, 20%7D;%0A        int%5B%5D b = %7B3, 8, 12, 16, 21%7D;%0A        generateArray(a, b, 0, 0);%0A    %7D%0A%0A    private void print(int%5B%5D array, int h) %7B%0A        for (int i = 0; i %3C h; i++) %7B%0A            System.out.print(array%5Bi%5D + %22 %22);%0A        %7D%0A        System.out.println(%22%22);%0A    %7D%0A%0A    private void generateArray(int%5B%5D a, int%5B%5D b, int i, int i1) %7B%0A        int%5B%5D c = new int%5Ba.length + b.length%5D;%0A        generateArray(a, b, c, 0, 0, 0, true);%0A    %7D%0A%0A    private void generateArray(int%5B%5D a, int%5B%5D b, int%5B%5D c, int i1, int i2, int pos, boolean flag) %7B%0A        if (flag) %7B%0A            if (pos != 0) %7B%0A                print(c, pos + 1);%0A            %7D%0A            for (int i = i1; i %3C a.length; i++) %7B%0A                if (pos == 0) %7B%0A                    c%5Bpos%5D = a%5Bi%5D;%0A                    generateArray(a, b, c, i + 1, i2, pos, !flag);%0A                %7D else if (a%5Bi%5D %3E c%5Bpos%5D) %7B%0A                    c%5Bpos + 1%5D = a%5Bi%5D;%0A                    generateArray(a, b, c, i + 1, i2, pos + 1, !flag);%0A                %7D%0A            %7D%0A        %7D else %7B%0A            for (int j = i2; j %3C b.length; j++) %7B%0A                if (b%5Bj%5D %3E c%5Bpos%5D) %7B%0A                    c%5Bpos + 1%5D = b%5Bj%5D;%0A                    generateArray(a, b, c, i1, j + 1, pos + 1, !flag);%0A                %7D%0A            %7D%0A        %7D%0A    %7D%0A%7D%0A

Generate all possible sorted arrays