归并排序及小和问题(上)

简介: 归并排序及小和问题(上)

归并排序mergeSort


image.png

先让左侧部分排好序

变成了1,2,3

再让右侧部分排好序

变成了2,5,6


image.png

怎么样让它整体都有序呢

merge在一起就行了

image.png

准备一个辅助空间 谁小拷贝谁

左侧下标指向1

右侧下标指向2

左侧如果小于等于右侧

先拷贝左侧的

如果右侧小于左侧

则先拷贝右侧

如图 1小拷贝1 指针往下动


image.png

相等的时候 默认拷贝左边的 指针再往右动


image.png

3>2 右侧小拷贝右边的 指针往右动

image.png

3<5 拷贝3 指针越界 将剩下的拷贝过来

image.png

小结

左侧部分排好序

右侧部分排好序

利用merge的过程 使得整体都有序

在辅助空间有序了 再拷贝回原数组

image.png

image.png

1、L=R 就一个数 return

2、先左侧排序

3、再右侧排序

4、此时整体还无序

所以有一个merge的过程

image.png

整个范围是L~R

左侧范围是L~M

右侧范围是M+1 ~ R

所有用L、M、R表示2个区域的意思

左侧和右侧各自都有序了

再来看下merge的过程

a、先准备一个辅助空间help

L-R上一共有多少个数 就开多大的空间

image.png

i 这个 变量专门给help使用的

image.png

相关文章
|
人工智能 BI
归并排序
归并排序。
44 0
|
5月前
|
算法 搜索推荐 Java
归并排序就是这么容易
归并排序就是这么容易
40 2
|
6月前
|
存储 算法 搜索推荐
C++归并排序的实现
C++归并排序的实现
|
6月前
|
搜索推荐
归并排序是什么
归并排序是什么
20 归并排序
20 归并排序
42 0
|
存储 算法 搜索推荐
归并排序(看了就会)
归并排序(看了就会)
|
搜索推荐 算法 C#
C#——归并排序
C#——归并排序
152 0
|
算法
归并排序及小和问题(中)
归并排序及小和问题(中)
158 1
归并排序及小和问题(中)
|
算法
【2. 归并排序】
归并与快排不同: >快速排序: >- 分界点是随机数组里面的一个`数`来分,使得左边都是<= 这个数,右边 >= 这个数 (`数值`) >- 先分完,在分别递归俩边 > >归并排序: >- 先递归俩边,在进行合并操作 >- 分界点是`整个数组中间的位置`(`下标值`)
95 0
【2. 归并排序】