按大小顺序,插入一个数
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]+" "); } } }
浙公网安备 33010602011771号