Java--随机生成数组并且排序,再随机生成一个数插入该有的顺序位置

public class Test {

	public static void main(String[] args) {
		int[] nums = new int[10];
		//随机生成10个数给nums数组。
		for (int i = 0; i < nums.length; i++) {
			nums[i] = (int)(Math.random() * 100);
		}
		int num = 0;
		System.out.print("原数组顺序为:");
		//将nums数组按从小到大排序并且打印
		for(int i = 0;i<nums.length;i++){
			for (int j = i+1; j < nums.length; j++) {
				if (nums[i] > nums[j]) {
					num = nums[i];
					nums[i] = nums[j];
					nums[j] = num;
				}
			}
			System.out.print(nums[i]+",");
		}
		//随机生成一个整型插入数字
		int charu = (int)(Math.random() * 100);
		System.out.println();
		System.out.println("插入数字是:"+ charu);
		//新建一数组。并比nums原数组位置加1
		int[] nums2 = new int[nums.length+1];
		int index = -1;//定义用来保存要被插入数字所在位置的下标
		//循环并判断插入数字该在哪两个数字位置中间
		for (int x = 0; x < nums.length; x++) {
			if (nums[x]< charu && nums[x+1] >= charu) {
				index = x+1;//将比插入数字大的下标给index并结束循环
				break;
			}
		}
		//先将原数组比插入数字小的按顺序复制到新数组
		for (int y = 0; y < index; y++) {
			nums2[y] = nums[y];
		}
		//将插入数字放到后面
		nums2[index] = charu;
		//再将比插入数字大的数按顺序复制完
		for (int z = index+1; z < nums2.length; z++) {
			nums2[z] = nums[z-1];
		}
		//打印新的的数组
		for (int i = 0; i < nums2.length; i++) {
			System.out.print(nums2[i] + ",");
		}
/**
 * 				更快捷方法
 * 		nums = Arrays.copyOf(nums, nums.length + 1);// 数组扩容
 *	    nums[nums.length - 1] = charu;//将扩容的位置给要插入的数字。
 *	    int num1 = 0;
 *	    System.out.print("插入后数组为:");
 *	    Arrays.sort(nums);//快速排序,并打印
 */
	}
}


你可能感兴趣的:(java题)