#java#将一个数插入已经排序的数组

有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
程序分析:首先判断此数是否大于最后一个数,然后依次向中间数比较,若大于某一个数,则取代它的位置,并使它后面的元素的位置依次后移。然而数组长度固定,但可以通过创建长度足够的新数组存放原数组数值和插入的数来变通地解决问题。
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); //调用方法处理原数组并用c数组接收方法返回的数组
        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;
    }
}

你可能感兴趣的:(java编程学习)