(68)王道数据结构-归并排序
原文地址:归并排序
基本概念
归并排序利用递归分治的思想,将原本的数组进行划分,然后首先对划分出来的小数组进行排序,然后最后在合并为一个有序的大数组
示例数组
数组: 4,2,7,1,8,5,3,6
划分
第一次划分:
第二次划分:
最后一次划分:
合并
1.注意这里的合并并不是简简单单地合并,我们需要按照从小到大的顺序
2.依次对每个元素进行合并,第一组树4和2
3.从这两个数组中先选择小的排到前面去
继续合并:
最后一步:
将这两个数组合并到原有的规模,最后我们再将这两个数组合并到原有的规模,就能得到一个有序的数组了
核心代码
1 |
|
1.因为归并排序最后也是按照小的优先进行合并,如果遇到相等的,也是优先将前面的丢回原数组
2.所以说排在前面的还是排在前面,因此归并排序也是稳定的排序算法
3.这种排序算法效率也很高,只不过需要牺牲一个原数组大小的空间来对这些分解后的数据进行排序
(68)王道数据结构-归并排序
https://www.eldpepar.com/iecore/39062/