版本一】
import java.util.Scanner;
class Test30 {
public static void main(String[] args) {
int[] arr = {2,16,22,38,46,66,88,99};
Scanner sc = new Scanner(System.in);
System.out.println("请输入要插入的数:");
int num = sc.nextInt();
//定义一个比原数组长度大一的空数组
int[] arr2 = new int[arr.length+1];
//如果输入的比有序数组的最后一个元素还大,就直接放到新数组的最后一个
if(num>arr[arr.length-1]){
arr2[arr2.length-1]=num;
for(int i=0;i<arr.length;i++){
arr2[i] = arr[i];
}
}else{
int i;
for(i=0;i<arr.length;i++){
if(arr[i]<num){
arr2[i] = arr[i];
}else{
arr2[i] = num;
break;//例如1,2,3,5,6;插入4;1,2,3,4,插入之后要跳出,否则后面就全是4
}
}
for(int j=i+1;j<arr2.length;j++){
arr2[j]=arr[j-1];//把剩下的元素添加尽量,例如上面的5,6
}
}
traverse(arr2);
}
//定义遍历方法
public static void traverse(int[] arr){
for(int i=0;i<arr.length;i++){