有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
/*
* 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
* x如果比最大的数大,则直接插入最大的数之后
* 遍历数组到a[i],发现比x大,则从a[i]到a[a.length-1]整体后移,空出a[i]
*/
public class Test9 {
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
int[] a=new int[5];
int i,j,x,t1,t2;
System.out.println("请按从小到大的顺序输入四个整数:");
for(i=0;i<a.length-1;i++){
a[i]=cin.nextInt();
}
System.out.println("请输入要插入的数:");
x=cin.nextInt();
if(x>a[3])
a[4]=x;
else {
for(i=0;i<a.length-1;i++) {//遍历数组
if(a[i]>x) {
t1=a[i];
a[i]=x;
for(j=i+1;j<a.length;j++) {//整体后移
t2=a[j];
a[j]=t1;
t1=t2;
}
break;
}
}
}
for(i=0;i<a.length;i++)
System.out.println(a[i]);
cin.close();
}
}
该程序实现了一个已排序数组的插入操作。用户先输入四个有序整数,再输入一个数,程序会根据输入的数找到合适的位置并将其插入,保持数组的有序状态。如果输入的数大于数组最大值,直接追加到末尾;否则遍历数组,找到第一个大于输入数的位置,将后续元素后移并插入新数。
6212

被折叠的 条评论
为什么被折叠?



