1. 快速排序
快速排序是最常用的一种排序方式,因为它的平均性能非常好,并且可以原地排序,即只需要使用常数(与数组长度无关)个新的空间来存储。快速排序利用了递归的思想,选定原数组一个元素作为主元素,交换使得主元素左边所有的元素小于或等于主元素,右边所有元素都大于等于主元素。主元素划分出了左右两个子数组,对子数组继续进行快速排序即可。
2.归并排序
归并排序(Merge Sort)是建立在归并操作的一种排序方式。归并排序可以指明一个大于2的整数k,称为k路归并排序。“归”,指的是将原序列分成k个子序列,然后使每个子序列有序;“并”,指的是将k个有序的子序列合成一个有序的序列。为了使每个子序列有序,让每个子序列再分成k个子序列使之有序后再合并成一个有序的序列。可以看出,该算法运用了分治法的思想,只要递归地进行归并操作即可得到有序的序列。
3.堆排序
堆排序是建立在堆这种数据结构基础上的选择排序。堆是一颗完全二叉树,最大堆满足树的每一个父结点均大于其左右两个子结点,最小堆则是每一个父结点均小于其左右两个子结点,因此二叉树的根节点(堆顶)是最大值或最小值。以最大堆为例,先将无序序列构建成最大堆,取出堆顶,对余下的数据调整使得符合最大堆,不断重复即可成功排序。