题目描述
有一个有序数字序列,从小到大排序,将一个新输入的数插入到序列中,保证插入新数后,序列仍然是升序。
输入描述:
共三行,
第一行输入一个整数(0≤N≤50)。
第二行输入N个升序排列的整数,输入用空格分隔的N个整数。
第三行输入想要进行插入的一个整数。
输出描述:
输出为一行,N+1个有序排列的整数。
解题思路
将要插入的数字插入到数组的最后,然后利用sort进行排序,最后输出有序的数组。
代码
#include<iostream> #include<algorithm>//sort在algorithm中,所以要包含这个头文件,否则不能使用sort using namespace std; int main() { int N; cin>>N; int a[N+2];//数组容量设置的大些,防止索引越界 for(int i=0;i<N;++i) cin>>a[i];//依次输入数组元素 cin>> a[N];//输入要插入的数 sort(a,a+N+1);//直接使用sort进行排序,默认是升序排序 for(int j=0;j<N+1;++j) cout<<a[j]<<" ";//经过sort后已经是有序数组了,直接依次输出即可 return 0; }