快速排序是对冒泡排序的一种改进,快速思想是使用分治法,其中有一个基准值,把一个数组中的数分为较基准值大和较基准值小的两部分(子数组),所有比基准值大的放在基准值后面,所有比基准值小的放在基准值前面,然后递归再次切分,直至子数组的大小为1或0,此时全局有序。
在Hadoop MarpReduce Shuffle的环形缓冲区中用到了快速排序
快速排序是不稳定的排序,在排序后,相同值的先后顺序可能会变化,所以是不稳定的。
所谓是稳定性是指:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。
代码实现:
Java版本:
![](https://img.haomeiwen.com/i24499285/460889bc88d9bd9c.png)
网友评论