Java基础50道经典练习题(30)——插入数字

【程序 30 插入数字】
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
 
程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的
数,依次后移一个位置。
 
源程序:
package com.homework.test;
import java.util.Scanner;
/*
【程序 30 插入数字】
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的
数,依次后移一个位置。
 */
public class Test30 {
    public static void main(String [] args){
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入要插入的数:");
        int m = scan.nextInt();
        scan.close();
        int[] a = {1,2,3,5,6,7,8}; // 4
        int[] b = new int[8];
        int len = a.length;
        int flag = 0;

        //此处只考虑了原数组是升序的,降序同理
        if (m > a[0]){
            for (int i=0; i<len; i++){
                if (m < a[i]) {
                    b[i] = m;
                    flag = i;
                    break;
                }
                b[i] = a[i];
            }
            for (int j=flag+1; j<len+1; j++)
                b[j] = a[j-1];

        }
        if (m >= a[6]){
            b[7] = m;
            for (int i=0; i<len; i++)
                b[i] = a[i];
        }

        
        for (int i=0; i<len+1; i++){
            System.out.print(b[i] + " ");
        }
        System.out.println();

    }


}

  

posted on 2020-06-06 02:23  lifelicanpeng  阅读(249)  评论(0编辑  收藏  举报

导航