有一按一定顺序排列的整形数组,现要将两个整数X,Y插进该数组,要求保持其原有排列顺序,请写程序实现。
方法一(替换):
static int num = 4;
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int arr[] = new int[100];
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[3] = 4;
System.out.println("请输入两个整数:");
int k = 0;
while (k < 2) {
int temp = input.nextInt();
num++;
Insert(arr,temp);
k++;
}
for (int i = 0; i < num; i++) {
System.out.print(arr[i]+" ");
}
}
public static void Insert(int arr[],int temp) {
for (int i =0 ; i < num; i++) {
if(temp < arr[i]) {
int t1 = arr[i];
arr[i] = temp;
temp = t1;
}
arr[num-1] = temp;
}
}
方法二(后移):
static int num =4;
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int arr[] = new int[100];
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[3] = 4;
System.out.println("请输入两个整数:");
int k =0;
while (k<2) {
int temp = input.nextInt();
int index = Insert(arr, temp);
for (int i = arr.length-2; i >= index; i--) {
arr[i+1] = arr[i];
}
arr[index] = temp;
k++;
}
for(int i=0;i<num;i++) {
System.out.print(arr[i]+" ");
}
}
public static int Insert(int arr[],int temp) {
boolean flag = true;
int index = 0;
for (int i = 0; i < num+1; i++) {
if(arr[i] >= temp) {
index = i;
num ++;
flag = false;
break;
}
index = i;
}
if(flag) {
num++;
}
return index;
}