有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
程序分析:首先判断此数是否大于最后一个数,然后依次向中间数比较,若大于某一个数,则取代它的位置,并使它后面的元素的位置依次后移。然而数组长度固定,但可以通过创建长度足够的新数组存放原数组数值和插入的数来变通地解决问题。
public class p22{
public static void main(String[] args){
int a[] = new int[]{1,6,14,26,46,66,87};
int c[] = fun(a,50);
for(int e:c){
System.out.print(e+" ");
}
}
static int[] fun(int b[],int p){
int n = b.length,i,j;
int d[] = new int[n+1];
for(i=n-1;i>=0;i--){
if(p<=b[i]){
d[i+1]=b[i];
}
if(p>b[i]){
d[i+1]=p;
for(;i>=0;i--){
d[i]=b[i];
}
break;
}
}
return d;
}
}