版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hju22/article/details/83552602
思路:
1、将要插入的数据放到数组的最后一个位置
2、将新数据和前一个做比较,向前遍历
如果这个数据比前面一个小,就一直交换,一旦不小,就退出循环,不用再比较
package com.array.test;
import java.util.Arrays;
import java.util.Scanner;
//实现:在有序数组中插入一个元素
//对新数组排序----将新数据一直往前挪,挪到合适的位置
public class ArrayInsert {
public static void main(String[] args) {
int[] arr=new int[]{5,8,19,20,23};
System.out.println("原数组为:arr="+ Arrays.toString(arr));
Scanner sc=new Scanner(System.in);
System.out.println("请输入插入的数据");
arr[arr.length-1]=sc.nextInt(); //把要插入的数据放到数组的最后一个
for(int i=arr.length-1;i>0;i--){
if(arr[i]<arr[i-1]){ //如果这个数据比前面一个小,就一直交换,一旦不小,就退出循环,不用再比较
int temp=arr[i];
arr[i]=arr[i-1];
arr[i-1]=temp;
}else{
break;
}
}
System.out.println("新数组为:arr="+Arrays.toString(arr));
}
}
结果: