Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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
Sorting 如何在haskell中并行排序未排序的二叉叶树?_Sorting_Haskell_Tree_Parallel Processing - Fatal编程技术网

Sorting 如何在haskell中并行排序未排序的二叉叶树?

Sorting 如何在haskell中并行排序未排序的二叉叶树?,sorting,haskell,tree,parallel-processing,Sorting,Haskell,Tree,Parallel Processing,可能重复: 下面只是一个小的二叉叶树的例子,只在叶中包含项目,而不进行排序。如果不展平树,然后在再次构建已排序树之前对其进行排序,有没有一种方法可以对其进行并行排序(使用par和seq原语)。e、 g.将左右分支并行排序,然后对这两个分支进行最后排序 /\ / \ / \ /\ /\ / \ / \ 3 1 5 2 说“不展平”是毫无意义的,因为树无论如何都必须解构和重建:即使在您的简单示例中,每个节点都必须更

可能重复:

下面只是一个小的二叉叶树的例子,只在叶中包含项目,而不进行排序。如果不展平树,然后在再次构建已排序树之前对其进行排序,有没有一种方法可以对其进行并行排序(使用
par
seq
原语)。e、 g.将左右分支并行排序,然后对这两个分支进行最后排序

       /\
      /  \
     /    \
    /\    /\
   /  \  /  \
   3  1  5  2

说“不展平”是毫无意义的,因为树无论如何都必须解构和重建:即使在您的简单示例中,每个节点都必须更改,因此无法从现有结构中保存任何内容。阅读树,执行合适的排序算法(合并排序在这里似乎是一个不错的选择,特别是它与并行计算配合得很好),然后重建树。没有更好的方法了。

你能澄清一下:你是想进行合并排序,还是更复杂的事情?是的,我想看看如何在这样的结构上进行合并排序,然后我可以添加任何并行性。类型def为:
data Tree=Leaf Int | Node(Tree)(Tree)
Nom以便重新打开。这与该用户提出的另一个问题不同,尽管有一些重叠。在这里打开了一个令人兴奋的问题:谢谢。在我的例子中,我要做的是对左分支和右分支进行并行排序,然后在两个结果之间进行合并。因此,合并排序在这里确实是最好的。对于一棵更大的树,我可以在树中进一步向下,并行地对多个子树进行排序。但是我仍然需要做一些类似的事情:sortList(subtreetlist(subTree))