2 u011475002 u011475002 于 2014.12.01 10:31 提问

快速排序和合并排序是否可以利用多核进一步加速

我在研究快速排序和合并排序的时候突然想到这两个算法是否可以利用多核来进一步加快运行效率~
因为它们是采用了分治法的思想,分解成多个互相独立的子排序,与其他需要顺序执行的排序算法不同~
没经过系统学习~正在看算法导论~勿喷~

3个回答

eagleyan
eagleyan   Rxr 2014.12.01 10:56
已采纳

合并排序比较适合多核加速,jdk8的新Arrays.parallelSort API就是这么实现的,quick sort从理论上来说也可以利用多核加速,不过由于其对于不同数据的split有可能出现线性的特点,理论上不是能保证得到加速。
另外,对于多核加速,期望值不要太高,基于我们对Arrays.parallelSort的测试,4核cpu最多能达到3.2倍的速度,而16核只能达到11.8倍。主要是由于现阶段的split之后还有merge。

u011475002
u011475002 谢谢~
大约 3 年之前 回复
eagleyan
eagleyan 另外再提一句,好的算法比多核加速要重要的多,即使现在有32核,64核,真正得到的加速可能就是20~40倍,但是高速的算法可能是数量级的提升。
大约 3 年之前 回复
caozhy
caozhy   Ds   Rxr 2014.12.01 10:35

理论上是这样,但是要考虑到数据同步和数据传输传输的开销,这个应该看《并行计算导论》。

dahlwuyn
dahlwuyn   2014.12.01 13:02

可以~希尔排序也可以多核加速

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!