您的位置:首页 >知识百科 >

归并排序算法(归并排序)

你们好,最近小时发现有诸多的小伙伴们对于归并排序算法,归并排序这个问题都颇为感兴趣的,今天小活为大家梳理了下,一起往下看看吧。

1、 归并排序(mergesort)是一种基于归并运算的有效排序算法,时间复杂度为O(nlogn)。

2、 归并排序是一个稳定的排序算法,也就是说无论什么数据,它的时间复杂度都是O(nlogn)。

3、 其中n是要排序的元素数量,log以2为基数。

4、 接下来是主流程。

5、 定义:mergesort(l,r)的意思是将区间[l,r]有序排列。

6、 步骤1:设置递归边界

7、 当l==r时,区间[l,r]已经是有序的,直接返回即可。

8、 第二步:设m为(l r)/2(四舍五入)。

9、 第三步:好,此时[l,m]和[m 1,r]已经按顺序排列好了。

10、 我们打开一个新的B数组,依次取出[l,m]和[m 1,r]开头的小数,放入B数组,然后跳过这个数。

11、 第四步:如果有间隔,还有一些余数怎么办?依次放入B数组。

12、 至此,归并排序完成,

13、 贴两张自己做的图(这是从大到小排序的)

14、 尝试实际应用,归并排序也可以用来求逆序对。

15、 以上是怎么写的归并排序详细及其应用,归并排序作为针灸的一种稳定的排序方法,如果熟练运用,会带来很大的帮助。

以上就是归并排序这篇文章的一些介绍,希望对大家有所帮助。

免责声明:本文由用户上传,如有侵权请联系删除!