欢迎光临散文网 会员登陆 & 注册

1071 数列有序

2021-10-29 00:11 作者:羽走  | 我要投稿


题目描述

一个非递减有序的整型数组有n个元素,给定一个整数num,将num插入该序列的适当位置,使序列仍保持非递减有序。

输入

输入有三行。第一行是一个正整数n(n<=1000)。第二行是n个整数,第三行是待插入整数num。

输出

输出非递减有序的n+1个整数,数据之间用空格隔开。输出占一行。

样例输入

样例输出

        此题主要考查对数组的理解与掌握,而且重在对变量变化的考查,作为数组的第二题,仍然有一点难度,建议这个题有思路即可,并没有特别经典的地方。

        【思路】

        这个题在课本上有原题,简单的再说一下思路:从数组的最后一个有效元素开始判断,判断插入数字是否小于最后一个有效元素,若是,则最后一个数字向后推一个,即  i+1。直到给插入数字找到合适位置,停止判断,输出这个数列。

        课本主要为了让你理解如何控制数组的变量变化,可能一开始不太理解,到后面做题多了理解就透彻一些。

        我一开始的做法与课本有所不同我的方法是从数组第一个数字和插入数字比大小,如果小于插入数字,直接进行输出,否则就输出插入输入数字,然后用另外一个循环输入这个数组剩余的数据。

        【解答】

        【解答2】

        还有一种解法,鲁棒性很强,即使面对非法数据的输入,也依旧可以输出正确答案,这个答案采用的是最为直接的排序,也不管你什么插入不插入,是不是非递减数列,不仅不用担心插入元素的位置,也不用考虑键盘输入数据的问题。另外说明,这个答案的插入数据是直接放到数组有效元素的后面。

     【此解答有up主同学给出,在此表示感谢】



1071 数列有序的评论 (共 条)

分享到微博请遵守国家法律