算法对三个数组的元素进行排序

时间:2011-09-05 19:16:58

标签: arrays algorithm sorting

这是绊脚石:

  

从三个阵列A,B和C开始,总共有2n+1个条目。   编写一个算法来对所有数组中的所有条目进行排序   仅使用以下两种方法:

     
      
  1. X = sort(X)将数组X替换为已排序的版本。

  2.   如果(X , Y) = doubleUp(X , Y)包含更多元素,则
  3. X不执行任何操作   比Y,否则会从length(X)中删除第一个Y条目   并将它们附加到X

  4. 的末尾   

这是我到目前为止所尝试的内容。如果其中两个数组为空,则只需在非空数组上使用sort

如果其中一个数组为空,那么我认为我可以使用doubleUp使一个数组只有一个数据而另一个数组拥有其他所有数据,并且如果该单例数组具有最小数量(或最大的元素,那么有效。因此,每次使用sort后我都可以使用doubleUp来确保这种情况发生。我在Maple中编写了这个代码,它适用于我检查过的所有情况。

我不知道如何使用3个阵列。有人有什么想法吗?

1 个答案:

答案 0 :(得分:5)

听起来像胡说八道。条目总数是奇数。增加数组长度的唯一方法是使它成为doubleUp的较小的第一个参数,在这种情况下,它最终会得到偶数个元素。因此,除非所有元素都在一个数组中,否则无法使一个数组包含所有元素,无论是排序还是其他元素。

因此,所需的最终结果不是包含所有元素的单个数组。或者如果是,那么问题的答案是“它无法完成”。