八种排序的关系:
归并排序将两个有序表合并·成一个新的有序表, 即把待排序的序列分成若干个子序列,每个序列都是有序的,然后将有序子序列合并成整体有序序列。
二、实例归并排序的核心经过两个分解, 合并, 分解: 由于合并中合并的序列必须为有序序列, 如何选择, 不断的惊醒分解, 分解到成一个元素的序列,那一定是一个有序的序列,这就要借助递归, 将一个源序列拆分成一个个有序的序列 然后就是进行合并。
首先来看合并部分, 提供连个子序列, 设定为有序的 数组data[] 中 left … center center … right 合并就是将者两个子序列进行合并。 创建一个临时数组用于存储这个序列的元素, 长度为两个子序列的长度:
int tmpArr = new int[right-left+1];
定义一个变量用于存储存到临时数组中的索引
int third = left;
定义一个变量作为第二个元素的索引记录
int tmp=left;
int mid = center+1;
因为两个子序列都是有序序列, 所以从两个序列中依次拿出元素比较, 小的元素存入临时数组中。
while(left
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?