4、快速排序算法
(1)算法描述
从待排序序列中任意挑选一个元素,作为基准
将所有小于基准的元素放在基准之前,大于基准的元素放在基准之后,等于基准的元素放在基准之前或之后,这个过程称为分组
以递归的方式,分别对基准之前和基准之后的分组继续进行分组,知道每个分组内的元素个数不多于 1 个为止
(2)算法评价
平均时间复杂度:O(NlogN)
非稳定排序
若每次都能均匀分组,则排序速度最快
(3)快速排序算法实现
(4)快速排序说明
5、归并排序算法
(1)算法描述
将待排序序列从中间划分为两个相等的子序列
以递归的方式分别对两个子序列进行排序
将两个有序的子序列合并成完整的序列
有序合并:
分配合并序列,其大小为两个有序序列大小之和
设定两个指针,分别指向两个有序序列的首元素
比较指针目标,娇笑着进入合并序列,指针后移
重复步骤3,直到某一指针到达序列末尾
将另一序列的剩余元素直接复制到合并序列末尾
(2)算法评价
平均时间复杂度:O(2NlogN)
稳定排序
对数据的有序性不敏感
非就地排序,需要辅助空间,不适合处理海量数据
(3)归并排序算法实现
(4)归并排序说明