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 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM