Java基础编程练习第33题-有序数组插入元素
题目:给定一个长度为n+1的整型数组和一个整数x,前n+1个元素有序,此时需要插入一个元素x,在该数组中插入x后该数组仍有序。
举例:
输入:1,3,5,7,0 2
输出:1,2,3,5,7
我们来思考一下这道题:我们可以从后往前遍历,如果当前数组值<=待插入元素,则该位置之后就是待插入数的位置
public class demo7 { public static void main(String[] args){ int[] arr=new int[]{1,3,5,7,0}; int x=2; int len = arr.length; if(arr[0]>x){ for(int j=len-2;j>=0;j--){ arr[j+1]=arr[j]; } arr[0]=x; } for(int i=len-2;i>=0;i--){ if(arr[i]<=x){//找到位置 for(int j=len-2;j>=i+1;j--){ arr[j+1]=arr[j]; } arr[i+1]=x; break; } } for(int val:arr){ System.out.println(val); } } }
这道题没有输入数组,而是建立一个已知数组。
使用new关键字创建数组:
int[] arr=new int[]{1,3,5,7,0};