有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
package demo40;
import java.util.Scanner;
/**
* 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
*
* @author Administrator
*
*/
public class Demo30 {
public static void main(String[] args) {
test();
}
public static void test() {
int[] a = { 11, 13, 15, 16, 24, 33, 65, 99 };
System.out.println("原数组的各个元素为:");
for (int j = 0; j < a.length; j++) {
System.out.print(a[j] + "\t");
if (j == a.length - 1) {
System.out.println();
}
}
System.out.println("请输入要插入的数:");
int num = 0;
Scanner s = new Scanner(System.in);
num = s.nextInt();
int[] b = new int[a.length + 1];
if (num <= a[0]) {
b[0] = num;
for (int j = 1; j < b.length; j++) {
b[j] = a[j - 1];
}
} else if (num >= a[a.length - 1]) {
b[b.length - 1] = num;
for (int j = 0; j < b.length - 1; j++) {
b[j] = a[j];
}
} else {
for (int j = 0; j < a.length - 1; j++) {
if (num >= a[j] && num < a[j + 1]) {
for (int k = 0; k <= j; k++) {
b[k] = a[k];
}
b[j + 1] = num;
for (int m = j + 2; m < b.length; m++) {
b[m] = a[m - 1];
}
}
}
}
System.out.println("现在数组各个元素为:");
for (int i = 0; i < b.length; i++) {
System.out.print(b[i] + "\t");
}
}
}