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 阅读(252) 评论(0) 编辑 收藏 举报