### 第一部分 归并排序的概念
【概念】
归并排序是比较排序的一种,通过划分,将一个n个元素的序列转换为n个含有1个元素的序列,然后再通过合并进行排序。
### 第二部分 归并排序的原理
【原理】
归并排序所用到的核心思想是分治法,通过将大的问题分解成一个个相互独立而且规模相当的子问题来解决。
### 第三部分 归并排序的步骤
【过程】
归并排序总共分为3个步骤:
> 1,划分
> 2,求解
> 3,合并
其详细的介绍如下:
划分:将大的排序问题转换成小的排序问题
* 划分的子问题需要相互独立
* 划分的子问题需要求解方法与原问题相同
求解:调整排序
合并:将划分的子问题合成成为一个较大的问题
### 第四部分 归并排序的时间复杂度
【拓展】
归并排序的时间复杂度为O(nlogn)
其在最好与最坏情况下所需要的时间相同
### 第五部分 特殊处理
【讲解】
当序列的长度为2的幂时,很好处理,但是当不是2的幂时会出现奇数长度的序列,这种序列在进行划分时涉及到了向下取整和向上取整的问题。这里需要把握一个要点,就是先把所有的序列都分割到1个长度,再向上整合。
### 第六部分 举例
【举例】
「1,3,5,2,6,7,8,4」划分
「1,3,5,2」「6,7,8,4」划分
「1,3」「5,2」「6,7」「8,4」划分
「1」「3」「5」「2」「6」「7」「8」「4」划分
「1,3」「2,5」「6,7」「4,8」合并+解决
「1,2,3,5」「4,6,7,8」合并+解决
「1,2,3,4,5,6,7,8」合并+解决