#杭电oj 2019 java
数列有序
有n(n <= 100)个整数,已经按照从小到大顺序排列好,
现在另外给一个整数x,请依次插入到序列中,替换新的序列仍然有序。
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int n=sc.nextInt();//n个整数
int num=sc.nextInt();//插入的数据
if((n==0)&&(num==0)) {//n和m同时为0指示输入数据的结束,本行不做处理。
break;
}
int[] arr=new int[n+1];//共n+1(插入那个数)个数
for(int i=0;i<arr.length-1;i++) {
arr[i]=sc.nextInt();//依次放在数组里,注意是数组长度-1个数
}
for(int i=0;i<arr.length;i++) {//遍历
//因为是已经按照从小到大顺序排列好的数组
//所以从左到右依次判断
//如果碰到第一个大于num的数(后面称X),准备插入
if(num<arr[i]) {
//从数组最后一个数开始,到x
//依次向后挪一位
for(int j=arr.length-1;j>i;j--) {
arr[j]=arr[j-1];
}
arr[i]=num;//最后把num赋值
break;
//这里一定要break
//不然x后面全是num的值
}
}
for(int i=0;i<arr.length-1;i++) {
System.out.print(arr[i]+" ");//循环输出n-1个数
}
System.out.println(arr[arr.length-1]);//输出最后一个数,换行
}
}
}