我现在正在查看我的旧校作业,想找到一个问题的解决方案。
哪种排序方法最适合并行处理?
- 冒泡排序
- 快速排序
- 归并排序
- 选择排序
我猜测快速排序(或者归并排序?)是答案。
我正确吗?
我现在正在查看我的旧校作业,想找到一个问题的解决方案。
哪种排序方法最适合并行处理?
我猜测快速排序(或者归并排序?)是答案。
我正确吗?
与归并排序类似,快速排序也因其分治的性质可以轻松地并行化。单独的原地分区操作很难并行化,但是一旦被分割,列表的不同部分可以并行排序。
与其他并行排序算法相比,并行快速排序的一个优点是不需要同步。一旦子列表可供新线程使用,它就会立即启动,并且它不会与其他线程通信。当所有线程完成时,排序就完成了。
这完全取决于并行化方法。对于多线程通用计算, 归并排序提供了相当可靠的负载平衡和内存本地化特性。对于硬件中的大型排序网络,如果您想要良好的O(log² n)性能,则最好使用Batcher、Bitonic或Shell排序。
我认为归并排序
你可以将数据集分割并对它们进行并行操作。
我认为归并排序是最好的答案。因为归并排序的基本思想是将问题分解为单独的解决方案。解决它们,然后合并它们。
这也是我们在并行处理中实际上所做的。将整个问题分解为小的单元语句以并行计算,然后合并结果。谢谢。
这里有几点随机的评论:
这是归并排序,因为排序是在两个子数组上完成的,并且它们在最后进行比较和排序。这些可以并行完成