Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 三数组元素排序算法_Arrays_Algorithm_Sorting - Fatal编程技术网

Arrays 三数组元素排序算法

Arrays 三数组元素排序算法,arrays,algorithm,sorting,Arrays,Algorithm,Sorting,下面是树桩: 从三个数组A、B和C开始,总共包含2n+1项。 编写一个算法,对所有数组中的所有条目进行排序 仅使用以下两种方法: X=sort(X)将数组X替换为已排序的版本 (X,Y)=doubleUp(X,Y)如果X有更多元素,则不会执行任何操作 而不是Y,否则它将从Y 并将它们附加到X的末尾 这是我到目前为止试过的。如果其中两个数组为空,则只需对非空数组使用sort 如果其中一个数组是空的,那么我想我可以使用doubleUp让一个数组只包含一个元素,而另一个数组包含所有其他元素,如果这个单

下面是树桩:

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

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

  • (X,Y)=doubleUp(X,Y)
    如果
    X
    有更多元素,则不会执行任何操作 而不是
    Y
    ,否则它将从
    Y
    并将它们附加到
    X
    的末尾

  • 这是我到目前为止试过的。如果其中两个数组为空,则只需对非空数组使用
    sort

    如果其中一个数组是空的,那么我想我可以使用
    doubleUp
    让一个数组只包含一个元素,而另一个数组包含所有其他元素,如果这个单例数组包含最小(或最大)元素,那么这就行得通。因此,每次使用
    doubleUp
    后,我都可以使用
    sort
    ,以确保实现这一点。我用Maple编码了这个,我查过的所有案例都有效


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

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


    因此,期望的最终结果不是一个按顺序包含所有元素的单个数组。或者,如果是,那么问题的答案是“它不能做”。

    这听起来像是一个家庭作业问题。我正在为面试问题做准备。我能问你这个面试问题是在哪里问的吗?它看起来有点奇怪,或者不完整,或者会有一个奇怪的解决方案,在其他任何地方都没有用处。我得到了curious@woliveirajr:有时问这样一个“愚蠢”的问题不是为了看你是否知道答案或是否能找到解决方案,而是为了看候选人如何处理问题、如何思考以及如何解决问题。问题陈述并不是说所有元素都必须在一个数组中。我认为让
    A[max]是有效的,OP从未争论过所有元素都以1个数组结束。只有一个单例,另一个包含
    2n
    元素。他能做到这一点我还不清楚,但听起来并不令人难以置信。@PengOne:我的意思是引用的采访问题听起来像胡说八道。如果所有条目都不在同一个数组中,那么对它们进行排序意味着什么?要么问题中有我看不到的东西,要么问题中有遗漏的东西……是的,我不确定。当一个数组为空时,我仍然对他的断言感到困惑。@PengOne:我想我遇到了一个反例:如果两个非空数组的初始大小为3和1668,那么重复应用
    doubleUp
    (最小的一个)在278步后返回到大小为3,1668,而不经过11670步。由于大小之和是不变的,每个起始对都必须在等于该和的步骤数内重复,因此,即使没有简单的数学性质决定它,也应该很容易对最小的反例施加暴力…如果问题是这样的不连贯和无意义,这不是一个很好的编程测试,只是个谜。我的意思是,这可能是我见过的最不连贯的编程问题。无论是谁写的API应该被枪毙,我都会回答(并证明API为什么没有达到预期的效果)。