1071 数列有序

题目描述
一个非递减有序的整型数组有n个元素,给定一个整数num,将num插入该序列的适当位置,使序列仍保持非递减有序。
输入
输入有三行。第一行是一个正整数n(n<=1000)。第二行是n个整数,第三行是待插入整数num。
输出
输出非递减有序的n+1个整数,数据之间用空格隔开。输出占一行。

样例输入

样例输出


此题主要考查对数组的理解与掌握,而且重在对变量变化的考查,作为数组的第二题,仍然有一点难度,建议这个题有思路即可,并没有特别经典的地方。
【思路】
这个题在课本上有原题,简单的再说一下思路:从数组的最后一个有效元素开始判断,判断插入数字是否小于最后一个有效元素,若是,则最后一个数字向后推一个,即 i+1。直到给插入数字找到合适位置,停止判断,输出这个数列。
课本主要为了让你理解如何控制数组的变量变化,可能一开始不太理解,到后面做题多了理解就透彻一些。
我一开始的做法与课本有所不同,我的方法是从数组第一个数字和插入数字比大小,如果小于插入数字,直接进行输出,否则就输出插入输入数字,然后用另外一个循环输入这个数组剩余的数据。
【解答】
【解答2】
还有一种解法,鲁棒性很强,即使面对非法数据的输入,也依旧可以输出正确答案,这个答案采用的是最为直接的排序,也不管你什么插入不插入,是不是非递减数列,不仅不用担心插入元素的位置,也不用考虑键盘输入数据的问题。另外说明,这个答案的插入数据是直接放到数组有效元素的后面。
【此解答有up主同学给出,在此表示感谢】
