比较伪代码中的数组编号

时间:2015-05-04 03:21:07

标签: arrays numbers compare pseudocode

将数组A和B作为输入,其长度(相同)为n。无论数字在哪个地方都是独一无二的。

<= A = [1,2,3,2]和B = [2,1,3,2]应该成立。 在比较之后,如果输出为假,则输出为真

到目前为止,我对if循环没有多少经验,这是我得到的一点点

A: array_of_numbers;
B: array_of_numbers;
n := |A|;
m := |B|;
for i = 1..n do

在那一点上,我不知道如何继续,因为我只是胡言乱语。我认为用第一个数字B检查第一个数字,如果它们匹配则进入i + 1。如果不是我和j + 1。我猜循环直到我和最后一个B不匹配的数字。从最后一个A到最后一个B的另一个循环。如果失败,我得到假。但我不知道怎么说呢

1 个答案:

答案 0 :(得分:1)

如果数组的大小为n且值在1..m之间,则可以使用backet sort(以o(m)大小为代价)对o(n)中的数组进行排序。然后两个数组将以o(n)排序。然后在具有两个索引的数组上运行,以确保每个值都出现在两个数组中。这也是o(n)。总成本:运行时间o(n),内存o(m)。 祝你好运!