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 }