int[] arr={5,6,8,9,10,12};
       int[] arr1=new int[arr.length+1];
       int charu=7;
       if(charu>arr[arr.length-1]){
       arr1[arr1.length-1]=charu;
       for(int i=0;i<arr1.length-1;i++){
       arr1[i]=arr[i];
       }
       }
       if(charu<arr[arr.length-1]){
      for(int i=0;i<arr1.length-1;i++){
        arr1[i+1]=arr[i]; 
           if(charu>arr1[i]){
                ......这里该怎么写移位?  
           arr1[i]=charu;
                 
        }
       }
      
       }插入数组

解决方案 »

  1.   

    if(charu<arr1[i+1]){
     for(int j=0;j<i;j++){
      arr1[j]=arr1[j+1];
     }
     arr1[i]=charu;
    }
      

  2.   


    int[] arr = { 5, 6, 8, 9, 10, 12 };
    int[] arr1 = new int[arr.length + 1];
    int charu = 7;

    if(charu<arr[0]){//如果charu比arr的第一个数还小
    arr1[0] = charu;
    for(int i=0;i<arr.length;i++){
    arr1[i+1] = arr[i];
    }
    }else if(charu>arr[arr.length-1]){// 如果charu比arr的最后一个数还大
    for(int i=0;i<arr.length;i++){
    arr1[i] = arr[i];
    }
    arr1[arr.length] = charu;
    }else{// 在中间的情况
    for(int i=0;i<arr.length;i++){
    if(charu>arr[i]&&charu<arr[i+1]){
    for(int j=0;j<=i;j++){
    arr1[j]=arr[j];
    }
    arr1[i+1] = charu;
    for(int k=i+2;k<arr.length+1;k++){
    arr1[k] = arr[k-1];
    }
    }
    }
    }


    for(int m=0;m<arr1.length;m++){
    System.out.println(arr1[m]);

    }
      

  3.   

    谢谢两位帮忙,根据提示,我也进行了改进
    //有序插入问题
    int[] arr={5,6,8,9,10,12};
    int[] arr1=new int[arr.length+1];
    int charu=7;
    if(charu<arr[0]){
    arr1[0] = charu;
    for(int i=0;i<arr.length;i++){
    arr1[i+1] = arr[i];
    }
    }
    else if(charu>arr[arr.length-1]){
    arr1[arr1.length-1]=charu;
    for(int i=0;i<arr1.length-1;i++){
    arr1[i]=arr[i];
    }
    }
    else if(charu<arr[arr.length-1]){
    for(int i=0;i<arr1.length-1;i++){
    arr1[i+1]=arr[i]; 
    while(charu>arr1[i+1]){
    arr1[i]=arr1[i+1];
    arr1[i+1]=charu;
    }
    }
    }
    for(int i=0;i<arr1.length;i++){
    System.out.print(arr1[i]+" "); }
    }