从5个扰乱的序列中导出有序序列

时间:2011-12-10 03:28:12

标签: c++ algorithm computer-science

我被指派做一个类似这样的问题:

我的程序应该得到一个整数列表A [1 ... N],其中A [j]表示列表中的第j个整数。

为了得到它,我的程序将输入5个列表,每个N个整数(与A [1 ... N]中的完全相同,尽管是加扰的)。这些列表中的每一个都将以这种方式生成:

列表按顺序排列,就像A [1 ... N]一样。然后对列表进行加扰,这通过从该列表中移除至少0个整数并将它们放回到所述列表中的任何位置来完成。在5个列表中的每个列表中,每个号码最多移动一次(尽管由于其他数字的移动,数字可能会以不同的索引结束)。

例如

假设N为5,正确的序列A为{1,2,3,4,5}

程序将输入以下5个序列:

1,2,3,4,5

2,1,3,4,5

3,1,2,4,5

4,1,2,3,5

5,1,2,3,4

如何确定目标/原始序列是{1,2,3,4,5}?

有人能指出我正确的方向吗? (这 是一个家庭作业问题)

告诉我你是否需要我更多地澄清这个问题。

谢谢!

1 个答案:

答案 0 :(得分:0)

我会创建一个大小为N的数组,并将其用作其他数组的索引。例如,如果您创建了一个整数数组索引[N],则可以对其进行操作并将其值用作其他数组的索引,即array1 [index [N]]。根据您操作此索引数组的方式,您可以将其用于加扰或排序。