注册 登录
编程论坛 VFP论坛

求最少去掉几个数字后,形成降序排列

a1999zqw 发布于 2018-02-19 10:59, 1673 次点击
任意输入7个互不相同数字序列,如:7  ,6.9 ,4 ,1.8 ,5 ,3 ,2
输出结果应该是去掉2个,降序排列为: 7  ,6.9 ,5 ,3 ,2

又如 :6.9 ,4 ,1..8 ,5 ,3  , 2 , 7
输出结果应该是去掉3个,降序排列为 6.9 ,4 ,3 , 2  或 6.9 , 5 ,3 ,2

[此贴子已经被作者于2018-2-19 13:56编辑过]

5 回复
#2
sdta2018-02-19 11:18
思路:将输入的数字保存在数组中,然后用ASORT()排序。
#3
a1999zqw2018-02-19 11:44
以下是引用sdta在2018-2-19 11:18:32的发言:

思路:将输入的数字保存在数组中,然后用ASORT()排序。

再删除第1个,看是否是降序排列,循环7次,没找到的话再删除第1个,第2个,循环N次,...............我只想到这个思路,望老师赐教,谢谢
#4
丁春秋yxp2018-02-23 11:10
第一次:第一个数后边的数跟第一个数比较,比第一个数大的就删除。
第二次:第二个数后边的数跟第二个数比较,比第二个数大的就删除。
.......
记录下共删除了几次就可以了。
其间有删除的就重置下顺序。
#5
wengjl2018-02-24 14:37
以下是引用丁春秋yxp在2018-2-23 11:10:36的发言:

第一次:第一个数后边的数跟第一个数比较,比第一个数大的就删除。
第二次:第二个数后边的数跟第二个数比较,比第二个数大的就删除。
.......
记录下共删除了几次就可以了。
其间有删除的就重置下顺序。


如果第一个是最小的,又该怎么办呢?  因为楼主有一个要求是删除个数最少化
#6
wengjl2018-02-24 14:37
以下是引用丁春秋yxp在2018-2-23 11:10:36的发言:

第一次:第一个数后边的数跟第一个数比较,比第一个数大的就删除。
第二次:第二个数后边的数跟第二个数比较,比第二个数大的就删除。
.......
记录下共删除了几次就可以了。
其间有删除的就重置下顺序。


如果第一个是最小的,又该怎么办呢?  因为楼主有一个要求是删除个数最少化
1