'''
归并排序原理:对于给定的一组数据,首先将要排序长度为n的列表或者数组折中分成两个子列表或者数组长度分别为(n/2),
第二次则分别将子序列分成总共4个子序列 每个子序列长度为(n/2/2) 以此继续分下去,直到子序列只剩下1个元素不能再分而停止.
最后将其两两归并,反复执行此过程,直到得到一个有序序列为止。
例如数组:
{38,65,97,76,13,27},具体排序过程如下:
拆分
第
1次:[38 65 97] [76 13 27]
第2次:[38 65] [97] [76 13] [27]
第3次:[38] [65] [97] [76] [13] [27]
合并
第1次:[38 65] [97] [13 76] [27]
第2次:[38 65 97] [13 27 76]
第3次:[13 27 38 65 76 97]
'''
时间复杂度:归并排序由于运用了二叉树的策略所以在分策略上是logn的时间复杂度,每一层都必须比较所以n个元素,
总共有n层所以最后的时间复杂度是O(nlogn)
空间复杂度:过程开辟了长度为n的临时空间 所以空间复杂度是O(n)