按大小顺序,插入一个数

flag  为是否插入过了新数据

条件为真的判断语句是add<arr[i]

保证只插入一次的话 需要加上第二个条件 !flag

无论是否插入新数据 都需要将旧数据复制到新数组

假定 插入的值比所有数组内值都大,需要将值加在末尾

import java.util.Scanner;
public class For02{
    public static void main(String[] args){
    System.out.println("按大小顺序,插入一个数");
    int arr[]={10,12,45,90};
    int add=23;
    //新开辟一个数组
    int arr2[]=new int[arr.length+1];
    boolean flag=false;//找到了addIndex位置
    for(int i=0,j=0;i<arr.length;i++){
           if(!flag && add<arr[i]){
               flag=true;
            arr2[j]=add;
            //23大于12 23小于45
            System.out.println("addIndex:"+j);
            j++;
        }
        
            arr2[j]=arr[i];//不论是否插入都需要复制旧数组
            j++;
          }  
    //如果要插入的值比所有数都大 
    if(!flag){
        arr2[arr.length]=add;
    }
    
    //输出新数组
    System.out.println("newwArr:");
    for(int i=0;i<arr2.length;i++){
        System.out.print(arr2[i]+" ");
    }
    

    
                                  
 }
}

 

posted @ 2025-04-28 17:11  胖豆芽  阅读(7)  评论(0)    收藏  举报