題目描述
已有一個已排好的9個元素的數組,今輸入一個數要求按原來排序的規律將它插入數組中。
輸入
第一行,原始數列。 第二行,需要插入的數字。
輸出
排序後的數列
樣例輸入 Copy
1 7 8 17 23 24 59 62 101
50
樣例輸出 Copy
1
7
8
17
23
24
50
59
62
101
這裏的排序並沒有說是正序還是逆序所以兩個都要考慮,這題通過率很低,應該都栽這了。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int[] a=new int[10];
Scanner s=new Scanner(System.in);
for(int i=0;i<10-1;i++) {
a[i]=s.nextInt();
}
boolean flag = true;
for(int i=0;i<10-1-1;i++) {
if(a[i]>a[i+1]) {
flag=false;
}
}
int number=s.nextInt();
for(int i=0;i<10-1;i++) {
if(flag==true) {
if(number<a[0]) {
for(int j=9;j>0;j--) {
a[j]=a[j-1];
}
a[0]=number;
}
else if(number>a[8]) {
a[9]=number;
}
else if(number>=a[i]&&number<a[i+1]) {
for(int j=9;j>i;j--) {
a[j]=a[j-1];
}
a[i+1]=number;
break;
}
}
else if(flag==false) {
if(a[8]>number) {
a[9]=number;
}
else if(a[0]<number) {
for(int j=9;j>0;j--) {
a[j]=a[j-1];
}
a[0]=number;
}
else if(number<=a[i]&&number>a[i+1]) {
for(int j=9;j>i;j--) {
a[j]=a[j-1];
}
a[i+1]=number;
break;
}
}
}
for(int i=0;i<10;i++) {
System.out.println(a[i]);
}
s.close();
}
}