归并排序
- 归并:把两个或多个已经有序的序列合并成一个
- 该算法稳定(代码设计合理)
算法思路:
若low<high,则将序列分从中间mid=(low+high)/2分开
对左半部分[low, mid]递归地进行归并排序
对右半部分[mid+1, high]递归地进行归并排序
将左右两个有序子序列Merge为一个
Code
算法效率分析
基数排序
示例
基本思想
算法效率分析
- 收集一个队列只需O⑴时间
- 基数排序是稳定的
应用
基数排序擅长解决的问题:
- 数据元素的关键字可以方便地拆分为d组,且d较小
- 每组关键字的取值范围不大,即 r 较小
- 数据元素个数n较大