在各种串行排序算法中,冒泡排序不论从理论上(时间复杂度为)还是实际效果上都不是最好的,但其算法简单,因而应用比较广泛,尤其是对性能要求不高的场合。本节研究如何实现冒泡排序的并行化。
串行冒泡排序算法包括两个循环,,每次操作比较两个相邻的元素,然后通过交换使之符合指定的排序。基本的串行算法见图6.2.3。当然可以通过一些手段来提高其性能,比如当没有发现交换时便结束循环等,不过这并不改变算法运行的时间复杂度。
冒泡排序顺次比较相邻的元素,这在本质上是一个串行的过程,很难并行化。将顺次的比较过程并行化将导致算法错误,得不到预想的结果。现有的并行算法多针对冒泡排序的变形。
|