Java重写《C经典100题》 --39
【程序39】
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。
2.程序源代码:
1 import java.util.Arrays; 2 import java.util.Random; 3 import java.util.Scanner; 4 5 /** 6 * 7 *【程序39】 8 * 题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。 9 * 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况, 10 * 插入后此元素之后的数,依次后移一个位置。 11 * 12 * @author www.cnblogs.com/java-100 13 * 14 */ 15 16 public class Java39 { 17 18 public static void main(String[] args) { 19 int[] arr = new int[10]; 20 Random ran = new Random(); 21 for (int i = 0; i < arr.length; i++) { 22 arr[i] = ran.nextInt(100); 23 } 24 Arrays.sort(arr); 25 System.out.println(Arrays.toString(arr)); 26 System.out.print("请输入一个100以内的数字:"); 27 Scanner scanner = new Scanner(System.in); 28 int num = scanner.nextInt(); 29 for (int i = 0; i < arr.length; i++) { 30 if (num < arr[i]) { 31 arr = Arrays.copyOf(arr, arr.length + 1); 32 System.arraycopy(arr, i, arr, i + 1, arr.length - i - 1); 33 arr[i] = num; 34 break; 35 } 36 } 37 System.out.println(Arrays.toString(arr)); 38 } 39 40 }