Javaで秩序を達成するためにどのように、無秩序なテーブル逆さま線形組み合わせ


ソートされたリストをマージ

  • 2つの注文の配列をマージします
public class Main {
    public static void main(String[] args) {
        int[] arr2 = {1,3,5,7};
        int[] arr1 = {4, 6, 8, 10, 12};
        ArraySort sort = new ArraySort();
        sort.sort(arr1, arr2);
    }
}

class ArraySort {
    public void sort(int[] arr1, int[] arr2) {
        int[] arr3 = new int[arr1.length + arr2.length];
        int i = 0, j = 0, k = 0;
        boolean flag = true;
        while (flag) {
            if (arr1[i] < arr2[j]) {
                arr3[k] = arr1[i];
                    i += 1;
            } else if (arr1[i] > arr2[j]) {
                arr3[k] = arr2[j];
                    j += 1;
            }
            k += 1;
            if(i == arr1.length){
                // arr1 遍历结束
                for (int s = j; s < arr2.length; s++) {
                    arr3[k] = arr2[s];
                    k+=1;
                }
                flag = false;
            }else if(j==arr2.length){
                // arr2 遍历结束
                for (int s = i; s < arr1.length; s++) {
                    arr3[k] = arr1[s];
                    k+=1;
                }
                flag = false;
            }
        }
        this.show(arr3);
    }
    public void show(int[] arr) {
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]);
        }
    }
}

合併の順序なしリスト

public class Main {
    public static void main(String[] args) {
        int[] arr1 = {1, 3, 5, 7, 9};
        int[] arr2 = {2, 4, 6, 8, 10};
        ArraySort sort = new ArraySort();
        sort.sort(arr1, arr2);
    }
}

class ArraySort {
    public void sort(int[] arr1, int[] arr2) {
        int len = arr1.length;
        int[] arr3 = new int[len + arr2.length];
        for (int i = 0; i < len; i++) {
            arr3[i] = arr1[i];
        }
        for (int i = 0; i < arr2.length; i++) {

            if (!isExist(arr3, arr2[i])) {
                arr3[len + i] = arr2[i];
            }
        }
        show(arr3);
    }

    public boolean isExist(int[] arr, int b) {
        boolean reslt = false;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] == b) {
                reslt = true;
            }
        }
        return reslt;
    }

    public void show(int[] arr) {
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]);
        }
    }
}

リニア反転表

public class Main {
    public static void main(String[] args) {
        int[] arr1 = {1, 3, 5, 7, 9};
        ArraySort sort = new ArraySort();
        sort.sort(arr1);
    }
}

class ArraySort {
    public void sort(int[] arr) {
        int[] arr1 = new int[arr.length];
        int j = 0;
        for (int i = arr.length - 1; i > -1; i--) {
            arr1[j] = arr[i];
            j += 1;
        }
        this.show(arr1);
    }

    public void show(int[] arr) {
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]);
        }
    }
}

ここに画像を挿入説明

公開された150元の記事 ウォンの賞賛2626 ビュー59万+

おすすめ

転載: blog.csdn.net/qq_43901693/article/details/105122037