首页 > 代码库 > Java经典编程题50道之三十

Java经典编程题50道之三十

有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

public class Example30 {
    public static void main(String[] args) {
        int[] m = { 3, 5, 9, 12, 16, 20, 25, 33 };
        addElement(m, 17);
    }

    public static void addElement(int[] a, int n) {
        System.out.print("插入前的数组为:");
        for (int r : a) {
            System.out.print(r + " ");
        }
        int[] b = new int[a.length + 1];
        int i, j, k;
        for (i = 0; i < a.length; i++) {
            if (a[i] >= n) {
                for (j = a.length; j > i; j--)
                    b[j] = a[j - 1];
                b[i] = n;
                break;
            } else {
                b[a.length] = n;
            }
        }
        for (k = 0; k < i; k++)
            b[k] = a[k];
        System.out.print("\n插入" + n + "后的数组为:");
        for (int r : b) {
            System.out.print(r + " ");
        }
    }
}

Java经典编程题50道之三十