当前位置:编程学习 > JAVA >>

有序插入问题....插入的把前面的数给替换了。。


       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;
                 
        }
       }
      
       } 插入数组 --------------------编程问答-------------------- if(charu<arr1[i+1]){
 for(int j=0;j<i;j++){
  arr1[j]=arr1[j+1];
 }
 arr1[i]=charu;
}
--------------------编程问答--------------------

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]);

}

--------------------编程问答-------------------- 谢谢两位帮忙,根据提示,我也进行了改进。。。
//有序插入问题
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]+" ");

}
}   --------------------编程问答-------------------- 进步很快嘛 --------------------编程问答-------------------- 除
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,