八种排序的关系:
归并排序将两个有序表合并·成一个新的有序表, 即把待排序的序列分成若干个子序列,每个序列都是有序的,然后将有序子序列合并成整体有序序列。
二、实例归并排序的核心经过两个分解, 合并, 分解: 由于合并中合并的序列必须为有序序列, 如何选择, 不断的惊醒分解, 分解到成一个元素的序列,那一定是一个有序的序列,这就要借助递归, 将一个源序列拆分成一个个有序的序列 然后就是进行合并。
首先来看合并部分, 提供连个子序列, 设定为有序的 数组data[] 中 left … center center … right 合并就是将者两个子序列进行合并。 创建一个临时数组用于存储这个序列的元素, 长度为两个子序列的长度:
int tmpArr = new int[right-left+1];
定义一个变量用于存储存到临时数组中的索引
int third = left;
定义一个变量作为第二个元素的索引记录
int tmp=left;
int mid = center+1;
因为两个子序列都是有序序列, 所以从两个序列中依次拿出元素比较, 小的元素存入临时数组中。
while(left
关注
打赏