此文章基于对笔记的整理。
归并排序思路及时间复杂度分析
- 思路:
归并排序的本质就是分冶算法。
而分冶算法则是把大型问题划分成简单多个小型问题,通过对小问题的处理加整合得到
原问题解。过程可被划分为分解,冶理,合并。
归并排序是一种较为稳定的排序方法,其思路即使分解原数组,划分成极小份数,对所有份数整合合并,得到排序解。
- 模拟
步骤一:将所有元素分成大小大致相同的两个序列。
步骤二:再把子序列分成大小大致相同的两个子序列。
步骤三:直到不可再分为止,一个元素必定是有序数列。
步骤四:将两个有序的子序列合并为一个有序序列,直到所有的元素都合并为一个有序序列。
图示:
分解
合并:
可以看的出来时间复杂度为o(nlogn)
将n个数分解,需要logn层
而n个数比较,总体时间复杂度为o(nlogn)
程序等自己分析完了再上传