归并排序
归并排序基本原理是合并两个已排序的数组
https://www.cnblogs.com/chengxiao/p/6194356.html
递归实现,自顶向下,between top down merge:
非递归,自底向上,bottom up merge sort:
递归就是把大问题拆解成一个个小问题,最后拆成两两相邻元素比较.
java实现:
1 | package cn.llnn.sort; |
python实现:
1 |
|
边界界定:
非递归方法,边界界定:
- 让相邻的两个数组进行归并,保证相邻的两个元素是有序的.
- 由于相邻两个数组变成有序了,所以子数组长度是按2的指数增长的1,2,4,8…
- 需要找出low,mid,high 之前的关系
递归方法:
参考:
https://www.cnblogs.com/edwinchen/p/4783218.html
https://blog.csdn.net/MoreWindows/article/details/6678165
https://blog.csdn.net/jianyuerensheng/article/details/51262984
bottom up merge sort