归并排序详解

归并排序是一种基于分治法的排序算法,通过递归或迭代将子序列两两归并,最终形成有序序列。它的时间复杂度为O(nlog2n),空间复杂度为O(n),是稳定的排序方法,适用于顺序存储和链式存储。以排序49、38、65、97、76、13、27为例,逐步归并展示了排序过程。
摘要由CSDN通过智能技术生成

什么是归并排序

归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。归并排序是一种稳定的排序方法。

归并排序的实现由两种方法:
自上而下的递归(所有递归的方法都可以用迭代重写,所以就有了第 2 种方法);
自下而上的迭代;

实现方式

2-路归并排序

假定待排序表含有 n 个记录,则可以看成是 n 个有序的子表,每个子表长度为 1, 然后两两 归并,得到 ⌈ n / 2 ⌉ \lceil n/2 \rceil n/2个长度为2或1的有序表;再两两归并,……如此重复,直到合并成一个长度为 n 的有序表为止,这种排序方法称为2-路归并排序

例子:排序49、38、65、97、76、13、27

(1)首先将整个序列的每个关键字看成一个单独的有序的子序列

(2)两两归并,49 和 38 归并成{38 49} ,65 和 97 归并成{65 97},76 和 13 归并成{76,13}, 27 没有归并对象
(3)两两归并,{38 49) 和 {65 97}归并成{38 49 65 97}, {13,76} 和 27 归并成{13 27 76}
(4)两两归并,{38 49 65 97} 和{13 27 76} 归并成{13 27 38 49 65 76 97}

关于归并排序的性能参数

1、时间复杂度

O ( n l o g 2 n ) O(nlog_2n)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值