第1关:编写程序将一个给定的整数插到原本有序的整数序列中,使结果序列仍然有序。
任务描述
本关任务:编写程序有n(n<=100)个整数,已经按照从小到大顺序排列好,现在另外输入一个整数m,请将该数插入到序列中,并使新的序列仍然有序。
相关知识
为了完成本关任务,你需要掌握在长度为n的有序数组a中插入一个整数x后数组a仍然有序的算法思想:
从数组最后一个元素起,将要插入的数据x与数组a最后一个元素a[n-1]比较,如果小,就把a[n-1]向后移动一位到a[n]中;如果大,就跳出循环;
再依次与a[n-2]比较,如果小,就把a[n-2]向后移动一位到a[n-1]中;如果大,就跳出循环;直到a[0]为止;
跳出循环后,将x插入到数组下标j+1处。
for( j=n-1; j>=0 && x<a[j]; j-- ) //查找插入位置
{
a[j+1]=a[j] ; // 后移
}
a[j+1]=x; // 插入数据到正确位置
编程要求
根据提示,在右侧编辑器补充代码。
测试说明
平台会对你编写的代码进行测试:
输入格式:
第一行先给出非负整数N;
第二行给出N个从小到大排好顺序的整数;
第三行给出一个要插入的整数X。
输出格式:
在一行内输出将X插入后仍然从小到大有序的整数序列,每个数字后面有一个空格。
测试输入