【发布时间】:2016-06-08 16:05:01
【问题描述】:
得知 Array 和 List 在 Elm 中是两种不同的类型,我感到很惊讶:
就我而言,我有一个长度为 2,000,000 的 List Int,我需要其中大约 10,000 个,但我事先不知道哪一万个。这将由另一个列表提供。在伪代码中:
x = [ 1,1,0,30,...,255,0,1 ]
y = [ 1,4,7,18,36,..., 1334823 , ... 1899876 ]
z = [ y[x[0]], y[x[1]], ... ]
我正在使用伪代码,因为这显然不是 Elm 语法(它可能是合法的 JavaScript)。
这些数组选择可以在List 或Array 或两者中完成吗?
【问题讨论】:
-
List是一个链表结构,所以表达式y[x[i]]是对x中的ith 的O(n) 查找加上对x的另一个O(n) 查找y中的元素。换句话说,对于 200 万个元素中的 10000 次查找,这将非常缓慢。使用数组。 -
除非
y保证被排序,否则不同的算法将起作用 -
只是出于好奇:通过从 2.000.000 个元素列表中挑选 10.000 个元素来解决更广泛的问题是什么?
-
这 200 万个元素是图像中的像素。我得到 10000 分,我需要找到它们的 RGB 颜色。如果你愿意,我可以问一个新问题