问题描述
- 关于一个算法功能的逻辑实现问题
-
有一堆数字,从1到100顺序排序。然后对这些数字进行了若干次移动,顺序打乱了。然后将某些数字删除。通过一些操作后,又将数字重新从1到100顺序排序了。
但是需要通过一个方法:将这些数字排序成移动后未删除之前的顺序?
解决方案
这堆数字是否有重复的,怎么删除的数字,按照什么规律。
如果这个规律可以根据剩下的数字倒退出来,得到删除数字的位置,那么就可以得到移动后未删除之前的顺序
解决方案二:
如果删除本身没有规律,是没有办法还原的
解决方案三:
虽然在可能恢复的情况下找到复原的算法比较困难,但是在数学上证明无法恢复的情形是很简单的。
只要你能找出一个反例,即存在这样两个乱序的序列,删除其中的某个或者某几个数字,得到的数字重新排序后构成完全相同的序列。
如果这个反例存在,那么很明显你没有办法找到一个算法,确定原始数据的序列。
解决方案四:
这堆数字没有重复。
删除的话,如果本身移动后的顺序,中间数字删除之后,会将这个数字之后的数字往前推。本身数字个数也会减少。
解决方案五:
你的排序算法一步一步记录下来,如果可逆的话就在走一遍逆回去
解决方案六:
能不能写几行代码将删除前的序列保存一下 相当于一个旧版本一样的 如果可以这样做的话 问题就可以很简单了 只是您的任务要求可以么?
解决方案七:
假设是不重复的数值100个元素算法是确定的,无论如何打乱顺序:只要把序和值进行对比就知道该在什么位置,序总是小于值1,即序0值1,之后用减法直接找到位置。
解决方案八:
在删除方法中添加一个功能,存储这100个数据
时间: 2024-09-20 00:02:58