快速排序(Quicksort)几乎是最常用的串行内部排序算法,尽管其最坏情况下的复杂度为,但其平均复杂度是。利用快速排序方法对一个随机序列进行排序所需要进行的比较次数大约为,少于其它排序方法的平均比较次数。
快速排序是一种分治方法,它根据一个界把待排序序列分成两个子序列,其中一个子序列中的所有元素均小于界,而另一个子序列中所有元素的值均大于或等于界。然后对每个子序列采用同样的方法处理,最终完成排序。值得注意的是,一个序列根据界分成的两个子序列的长度不一定相等,因此对不同的初始序列排序的时间复杂度也不同。分成的两个子序列的长度越接近,算法的复杂度越低。快速排序的详细情况可参阅有关书籍。
下面研究如何在多个处理器上并行实现快速排序。
|