归并排序是一个采用“分治法”原理进行排序的算法。“分治法”的核心思想就是将一个大而复杂的问题分
归并排序是一个采用“分治法”原理进行排序的算法。“分治法”的核心思想就是将一个大而复杂的问题分解成若干个子问题分而治之。即,先将一个待排序的数组随机的分成两组且两组数组的元素个数相等或接近相等(若为奇数,其中一个数组的元素多1个),继续对分组的数组进行分组,直到每个数组的元素个数为1;最后,不断地将两个已排好序的相邻数组的元素归并起来,直到归并为一个包含所有元素的数组。归并两个已排序好的数组是容易的,只要不断地移出两组元素最前端较小的元素即可,在该过程中,需要开辟一块与原序列大小相同的空间以便进行归并操作。请选择正确的选项使得以下过程实现对8个元素的数组按升序排序() 初始数组:13,42,25,106,87,102,91,49 第一次分组:[13,42,25,106],[87,102,91,49] 第二次分组:[13,42],[25,106],[87,102],[91,49] 第三次分组:[13],[42],[25],[106],[87],[102],[91],[49] 第一次归并:
A.[13,25,42,106],[49,87,91,102]
B.[13,42,87,102],[25,49,91,106]
C.[13,25,49,106],[42,87,91,102]
D.[13,25,42,49],[87,91,102,106]

回答
共1条回复-
B 解析:以2一路归并排序为例进行说明。2一路归并是指将两个有序序列合并成一个有序序列,其基本过程为;从两个序列中各取一个元素,进行比较,输出较小的元素,从较小元素所在序列取下一个元素,与未输出的那个元素比较,输出较小者。依此类推,直到输出序列包含了两个初始有序序列的全部元索。对于一个初始无序的序列,可以先将其等分为两个无序的子序列,对这两个子序列再次二分,重复该过程,直到分出的子序列中仅包含一个元素时(一个元素自然是有序的)为止,然后在反复进行2一路归并的过程,最后完成排序。
