dsi*_*ign 5 arrays haskell
我有以下(命令性)算法,我想在Haskell中实现:
给定一系列对[(e0,s0),(e1,s1),(e2,s2),...,(en,sn)],其中"e"和"s"部分都是自然数,不一定不同的是,在每个时间步骤中随机选择该序列的一个元素,假设(ei,si),并且基于(ei,si)的值,构建新元素并将其添加到序列中.
如何在Haskell中有效地实现这一点?对于列表来说,随机访问的需求会变得很糟糕,而据我所知,一次追加一个元素的需要会使阵列变坏.
提前致谢.
iva*_*anm 12
我建议使用Data.Set或者Data.Sequence,取决于你需要它.后者特别为您提供对数索引查找(与列表的线性对比)和在任一端附加的O(1).
Data.Set
Data.Sequence
归档时间:
15 年 前
查看次数:
1678 次
最近记录:
13 年,11 月 前