Algorithm 从多个数组查询数据

Algorithm 从多个数组查询数据,algorithm,Algorithm,我有如下数组: [1,2,3,4,5,6] [11,22,33] [62,63,64,65,66,67] 我需要通过分页从这些不同长度的数组中获取数据,例如,给定页面大小5,结果页面应为: [1,11,62,2,22],[63,3,33,64,4],[65,5,66,6,67] 也就是说,我根据数组中数据的索引对数据进行排序,数组的计数不限于3 我笨拙的解决方案是遍历所有数组并将它们组合成一个新数组,这是无效的。是否有更好且有效的算法来获取页面数据,而无需组合/并集。就像给出第2页一样,我可以获

我有如下数组:

[1,2,3,4,5,6]

[11,22,33]

[62,63,64,65,66,67]

我需要通过分页从这些不同长度的数组中获取数据,例如,给定页面大小5,结果页面应为: [1,11,62,2,22],[63,3,33,64,4],[65,5,66,6,67]

也就是说,我根据数组中数据的索引对数据进行排序,数组的计数不限于3

我笨拙的解决方案是遍历所有数组并将它们组合成一个新数组,这是无效的。是否有更好且有效的算法来获取页面数据,而无需组合/并集。就像给出第2页一样,我可以获得开始索引和结束索引,以直接获取数据。提前谢谢


| 1 | 2 | 3 | 4 | 5 | 6 | |11|22|33| |62|63|64|65|66|67| 非常感谢,阿里斯蒂德!这对我帮助很大。实际上,我的数组是非常大的数组,因此更好的解决方案是直接获得给定的页面数据结果。与给出第2页一样,是否有一种方法可以获取第2页上的元素,而不是逐个计算第一页元素以获取第二页

谢谢你,阿里斯蒂德!根据我上面的描述,可能会误导读者。我的输入数组


| 1 | 2 | 3 | 4 | 5 | 6 | |11|22|33| |62|63|64|65|66|67|
给出第2页,直接返回第2页元素,避免逐个计算第一页元素!因此,结果/输出应该是:[63,3,33,64,4

python2.7,使用
itertools
,直接访问
页面索引
页面(从零开始):

输出:

[1, 11, 62, 2, 22]
[63, 3, 33, 64, 4]
[65, 5, 66, 6, 67]
[]
[]   

你的预期结果正确吗?您在回答中没有考虑到
4
。我想这一定是正确的答案。
[1,11,62,2,22],[63,3,33,64,4],[65,5,66,6,67]
@HarshGupta谢谢,我的粗心,我的结果不正确,我回复了我的问题。再次感谢Hanks@Aristide!这对我帮助很大。我想直接在第二页上获取数据,就像我在帖子中添加的细节一样。也许这有点贪心,算法真的是我的短!好的,我现在明白了。可能您应该给出一个函数输入/输出的示例。给定数组和索引2,您期望[63,3,33,64,4],对吗?我以为你的预期输出是一大堆页面:-)我的错,谢谢@AristideNever mind。这两个问题都很有趣。我已经删除了我的第一个解决方案,并将它们替换为更适合您的用例的解决方案。不过更像pythonic(我使用了生成器使代码更漂亮)。非常感谢@Aristide。这就是我想要的。对我来说,这真是一个挑战。
 data = [
     [  1,  2,  3,  4,  5,  6 ],
     [ 11, 22, 33             ],
     [ 62, 63, 64, 65, 66, 67 ],
 ]
 page_size = 5

 for page_index in range(5):
     print select_page(data, page_size, page_index)
[1, 11, 62, 2, 22]
[63, 3, 33, 64, 4]
[65, 5, 66, 6, 67]
[]
[]