题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
思路:根据要插入的数的大小来判断应该插入的位置
设计变量:n -- 待插入的数
index -- 插入的位置
b[] -- 新的数组
public class 第三十题插入待优化 {
public static void main(String[] args) {
/*思路:根据要插入的数的大小来判断应该插入的位置
设计变量:n -- 待插入的数
index -- 插入的位置
b[] -- 新的数组 */
int[] a = {1,2,5,8,9,11,13,19};
int[] b = new int[a.length + 1];
System.out.print("请输入一个数字(6或者10或者15):");
Scanner in = new Scanner(System.in);
//获取待插入的数字
int n = in.nextInt();
//获取插入的位置
int index = 0;
for(int i=1; i<a.length-1; i++) {
if(a[i] <= n && a[i+1] >=n) {
index = i+1;
break;
}
}
//{1,2,5,8,9,11,13,19}
//{1,2,5,6,8,9,11,13,19}
//拷贝给新的数组
//拷贝前面部分
for(int k=0; k<index; k++) {
b[k] = a[k];
}
//插入一个数字
b[index] = n;
//拷贝后面部分
for(int m=index+1; m <b.length; m++) {
b[m] = a[m-1];
}
//打印数组
for(int o:b) {
System.out.print(o + " ");
}
in.close();
}
}