首页 > 技术文章 > JAVA 基础编程练习题30 【程序 30 插入数字】

denggelin 2019-08-27 01:56 原文

 

30 【程序 30 插入数字】

题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数, 依次后移一个位置。

 

package cskaoyan;

public class cskaoyan30 {
	@org.junit.Test
	public void insertNumber() {
		java.util.Scanner in = new java.util.Scanner(System.in);
		int[] arr = { 1, 4, 6, 9, 13, 16, 19, 28, 40, 0 };

		System.out.print("原始列表:");
		show(arr);

		System.out.print("插入一个数字:");
		int number = in.nextInt();
		insert(arr, number);

		System.out.print("排序后列表:");
		show(arr);

		in.close();
	}

	private void insert(int[] arr, int number) {
		if (number > arr[arr.length - 1 - 1]) {
			arr[arr.length - 1] = number;
		} else {
			int temp1 = 0;
			int temp2 = 0;

			for (int i = 0; i < arr.length - 1; i++) {
				if (arr[i] > number) {
					temp1 = arr[i];
					arr[i] = number;

					for (int j = i + 1; j < arr.length; j++) {
						temp2 = arr[j];
						arr[j] = temp1;
						temp1 = temp2;
					}

					break;
				}
			}
		}
	}

	private void show(int[] arr) {
		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i] + " ");
		}

		System.out.println();
	}
}

 

推荐阅读