我对归并算法的理解

看到有很多人博客中写到归并算法,以及直接上代码,大致看了下,都差不多思路一样

这里我也谈谈归并算法的思想,代码就不上了,网上很多

首先,假如说有这样两个数列:a[4]={ 1 3 5 7 } 和b[4]={ 2 4 6 8 }

这两个数列都是排好序的,顺序也是一样的,那么问题就来了,能否创建一个数组c[8],

然后把这两个数组排序并放到C[8]里呢?

思考如下:

1、依次比较两个数组的元素,小的放前面,并使下标++

2、依次循环上一步骤

3、当循环退出后,肯定有一个数组的元素是没有被放到数组c里的,那就通过判断确定是哪个数组,并把数组的所有元      素依次放到数组c的后面

好了,这样就把数组c排好序了,依次从小到大


那么归并算法就是在上诉过程基础上做如下修改:

有一个数组a[],把这个数组拆分为两个等长数组,然后对两个数组用递归算法依次二分,然后把最小数组单元的元素进行比较,这样就保证得到了两个有序的数组,最后这两个数组就可以通过前面的那个理解进行重新排序了


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值