归并排序(非递归算法)

 

归并排序:

    将无序的序列划分成若干的子序列,然后将相邻的子序列归并到一个序列,这个归并过程一直继续下去,直到序列只有两个子序列,将这最后的两个子序列归并完成后,也即是排序完毕,得到的就是一个有序的序列。其中归并的过程也即是相邻两个子序列之间的排序问题。这是归并排序的基本原理。

    那么,思路也就是,在一趟排序中先将序列分成若干个子序列,然后再将相邻的子序列进行归并。将序列分成若干子序列,具体分法依赖于子序列的长度,确定了子序列的长度自然分成若干子序列也就不难了。长度L=2*趟数。将相邻子序列进行归并,实际上是进行将一个序列插入到另一个序列的操作。

    在这个过程中,需要借助一个与序列长度一致的数组空间,对暂排序列进行存储。

    这是一个非递归实现的思路。而二路归并算法也可以用递归实现它。下面是二路归并的非递归算法。

  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值