一、归并排序和基数排序
1.归并排序
-
基本思想
归并算法的中心是归并两个已经有序的数组。归并两个有序数组A和B,就生成了第三个数组C,数组C包含数组A和B的所有数据项,并且使它们有序的排列在数组C中。 -
举例
-
效率分析
空间:O(n)
时间:每趟归并的时间复杂度为O(n),共需进行log2n(向上取整)趟归并,所以时间复杂度为O(nlog2n)。
稳定性:稳定。
2.基数排序
-
基本思想
基数排序的总体思路就是将待排序数据拆分成多个关键字进行排序,也就是说,基数排序的实质是多关键字排序。
基数排序的思想就是将待排数据中的每组关键字依次进行桶分配。 -
举例
-
效率分析
空间:O®(一趟排序需要辅助存储空间为r)
时间:需要进行d趟分配和收集,一趟分配需要O(n),一趟收集需要O®,时间复杂度为O(d(n+r)),与序列初始状态无关。
稳定性:按位排序必须是稳定的。