1 package FushiExam;
2 import java.util.*;
3 public class Text_30 {
4
5 public static void main(String[] args) {
6 // 有一个已经排好序的数组。先输入一个数,要求按原来的规律将它插入到数组中
7 Scanner scan=new Scanner(System.in);
8 int[] arr= {1,8,12,17,48,99};
9 System.out.println("输出数组:");
10 for(int i=0;i<arr.length;i++) {
11 System.out.print(arr[i]+",");
12 }
13 System.out.println();
14 System.out.println("输入一个要插入的数:");
15 int key=scan.nextInt();
16 Insert(arr,key);
17
18 }
19 public static void Insert(int[] arr,int key) {
20 int[] brr=new int[arr.length+1];
21 if(key>arr[arr.length-1]) {//如果插入的数比最后一个数还大,则直接插入到最后一个位置的下一个位置
22 brr[arr.length]=key;
23 for(int i=0;i<arr.length;i++) {
24 brr[i]=arr[i];
25 }
26 }
27 else {//如果是其他位置,则所有比他大的数,都向后移一个
28 for(int i=0;i<arr.length;i++) {
29 if(key<arr[i]) {//如果插入的数,小于arr[i],则arr[i]之后的数,
30 for(int j=0;j<i;j++) {
31 brr[j]=arr[j];
32 }
33 brr[i]=key;//则把插入的数放在arr[i]位置,后边的数依次往后
34 for(int l=i+1;l<arr.length;l++) {
35 brr[l]=arr[l-1];
36 }
37 break;
38 }
39 }
40 }
41 System.out.println("插入后的数组:");
42 for(int i=0;i<arr.length;i++) {
43 System.out.print(brr[i]+",");
44 }
45 }
46
47 }