这次归并排序就只讲思路了,代码实现放到下次刷题再做
首先确认一下归并排序的时间复杂度是NlogN的时间复杂度。
实现归并排序的算法,我认为有几个困难需要克服掉
1、首先就是要明确归并排序的算法思想,就是二叉数据的后序遍历,就是先从中间分割成两个子数组,然后继续分,直到只剩下一个元素,那么此时就是有序的,这个和构造二叉树时的分解思想十分相似,把子问题全部解决,那问题也就都解决了,至于我们只关注其中一个节点需要完成什么,后续的分解什么的,计算机会替你完成。
2、明确好归并排序的的细想后,就是把思想实现成代码的落地能力,归并排序中,还有一个点就是,你左右的数组拍完序后需要把两个有序数组合并,这也是一个难点,怎么实现出来,这里的实现思想涉及到了数组的快慢指正技巧,需要用到辅助的数组
OK,归并排序的实现思想就讲到这里哦,后面再次刷数据的时候,再好好的将代码实现出来、