题目描述
已有一个已排好的9个元素的数组,今输入一个数要求按原来排序的规律将它插入数组中。
输入描述
第一行,原始数列。 第二行,需要插入的数字。
输出描述
排序后的数列
样例输入
1 7 8 17 23 24 59 62 101
50
样例输出
1
7
8
17
23
24
50
59
62
101
示例代码
int main(){
int a[10],temp;
for(int i=0;i<9;i++)
cin>>a[i];
cin>>temp;
for(int i=8;i>0;i--){
if(a[i]>temp && a[i-1]<temp){//升序
a[i+1]=a[i];
a[i]=temp;
break;
}
else if(a[i]<temp && a[i-1]>temp){//降序
a[i+1]=a[i];
a[i]=temp;
break;
}
else{
a[i+1]=a[i];
}
}
for(int i=0;i<10;i++){
cout<<a[i];
if(i<9) cout<<endl;//最后一个没有换行
}
return 0;
}
提示:
思路:无论是升序还是降序,只有在正确的位置才会出现一大一小。其他位置不是全部大就是全部小。