是否可以选择并行排序算法来实现作业?

gfe*_*gfe 6 sorting algorithm parallel-processing implementation

我想为家庭作业实施快速算法,但是使用并行处理来完成这项任务.我听说Quicksort的并行版本是最好的选择,但我不确定这个......也许Heapsort是个好主意.您认为哪种算法是并行环境中最好的算法,为什么?

Dea*_*n J 6

快速排序可以将未排序的列表分成两半,但不幸的是,这两半并不能保证在任何地方附近.因此,一台机器(或一组机器的一半)可以获得20个条目,另一半可以获得200亿个.

我想不出一个让heapsort同时工作的好方法.它可以做到,但男人,这感觉真的违反直觉.

合并排序是我认为你想要的.

  • 每个拆分恰好是列表的50%,因此很容易在处理器之间进行拆分.
  • 您可以在两组磁带驱动器上实现合并排序,这意味着它不需要整个列表一次在内存中.对于大型列表,特别是那些大于您可用内存的列表,这是必须的.
  • 如果重要的话,合并排序在并行实现中也是稳定的.