5, 7] 为例,它会把 arr 分成两组 A = [ 8 ] 和 B = [ 1, 4, 6, 2, 3, 5, 7] ,逐步遍历 B 中元素插入到 A 中,最终构成一个有序序列:
?...以 arr = [ 8, 1, 4, 6, 2, 3, 5, 7 ] 为例,通过 floor(8/2) 来分为 4 组,8 表示数组中元素的个数。分完组后,对组内元素进行插入排序。...其实,从名字「归并」可以看出一丝「拆、合」的意思(妄加猜测)。...以 arr = [ 8, 1, 4, 6, 2, 3, 5, 7 ] 为例,排序需要分两步:
a、「拆」,以 length/2 拆分为 A = [ 8, 1, 4, 6 ] ,B = [ 2, 3,...对数组 arr = [ 8, 1, 4, 6, 2, 3, 5, 4 ] 进行排序,使用计数排序需要找到与其对应的一个有序序列,可以使用数组的下标与 arr 做一个映射「数组的下标恰好是有序的」。