归并排序
归并排序
2路归并的“归并树”——倒立的二叉树,树高h,归并排序趟数m = h-1,第h层最多2^(h-1)个结点,则满足n ≤ 2^(h-1),即h-1 = ⌈log₂n⌉; 结论: n个元素进行2路归并排序,归并趟数 m = ⌈log₂n⌉
每趟归并时间复杂度为O(n), 算法总时间复杂度为O(nlog₂n);
空间复杂度为O(n); (归并排序算法可视为本章占用辅助空间最多的排序算法)
稳定性:归并排序是稳定的
对于N个元素进行k路归并排序,排序的趟数m满足 k^m = N, m = ⌈logkN⌉
1 | //创建辅助数组B |
基数排序
用于处理链式存储
- 数据元素的关键字可以很容易地进行拆分成d组,且d较小;
- 每组关键字的取值范围不大,即r较小;
- 数据元素个数n较大。
总排序的时间复杂度为O(d(n+r))
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Shouei的Blog!
评论