说归并排序之前我们需要理解一个概念就是递归,什么是递归,其实递归在我们生活也比较常见,我用我自身遇到过的事情来给大家举个栗子,比如我平时遇到不懂的概念总会去查百度百科,当我在看答案的时候发现又有一些名词是我不认识,我就又先去看一个这个名词是什么意思,当我看这个名词的时候,我发现这个名词对应的解释也有一些专用名词也不是太懂,然后我又去查这些不懂的专用名词,当我把这个专有名词看懂后,我在逐层的往回看,最终理解了我刚开始想看的概念。

根据上面图,我们先写一段代码,如何合并两个有序的数组。

简单的画了一归并排序的递归图。

整个归并排序的思想就是分治法,将数组分解成单个元素,单个元素肯定就是有序的,然后在两两合并,自己根据思想写了如下代码。验证了一下是可以的。


归并排序是稳定的 通过归并排序排序之后,相同元素靠在前面的元素依然在前面,当然这跟我们的写法有关系,不知道我这样理解对不对,对于任何一种排序,我们可能有不同的写法,如果有一种写法对于一种特定的排序能够实现稳定性,那这种排序算法就是稳定的,如果对于一种排序不管怎么写他都不能实现稳定性,那这种算法就不是稳定的,不知道这种理解对不对,后续我们随着理解的加深,我们来验证下。
学习不再三更五谷,功只怕一曝十寒。

本文深入探讨归并排序算法,解析其背后的递归原理,通过实例讲解如何将数组分解为单个元素再进行两两合并,实现稳定排序。
319

被折叠的 条评论
为什么被折叠?



