#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;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值