JAVA编程-----------30、有一个已经排好序的数组。先输入一个数,要求按原来的规律将它插入到数组中

 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 }

 

posted @ 2020-03-17 09:51  Hey蜗牛  阅读(1223)  评论(0编辑  收藏  举报