对数组进行排序,以便在整个数组中均匀分布3种类型的对象?

时间:2011-10-17 15:31:02

标签: flash actionscript-3

iSo假设我有三个不同的对象数组,我想将它们组合成一个排序的数组。我希望订单能够使每个数组中的项均匀分布在整个排序数组中。

如果有3个xItems,3个yItems和3个zItems,则排序后的数组将具有以下顺序: x,y,z,x,y,z,x,y,z

但是,即使数组的长度不同,我仍然需要尽可能地使它们交替。如果有6个xItems,4个yItems和2个zItems,则排序的数组应具有以下顺序: x,y,x,y,x,z,x,y,x,y,x,z

我能找到的最接近的答案是this thread,但遗憾的是他们从未找到答案:(

我正在制作一个动作脚本3.感谢任何能引导我朝正确方向前进的人!

1 个答案:

答案 0 :(得分:2)

您需要将此问题分解为更小的问题。我对此的尝试将类似于:

问题1:如何合并2个集合,以便元素均匀分布。

集合A:X X X X X X

收集B:Y Y

结果:X X X Y X X X Y

问题2:如何合并3个馆藏?

我会按以下方式进行:

第1步:按长度对3个集合进行排序。

第2步:使用问题1中的解决方案将最短的2个集合合并到一个集合中。

第3步:使用问题1中的相同算法再次将第三个集合与第2步的结果合并。

所以,基本上现在你必须只解决问题1。