排序算法-二路归并排序

16 篇文章 0 订阅
15 篇文章 0 订阅
二路归并算法思想:将一个无序数组从中间分为两个子数组,子数组又从中间分为两个子数组,按此规则直到数组不可分,再依次对有序子数组进行排序。假如无序数组
下面举一个实例:
如下所示是一个无序的数组{13 7 9 3 14 29 16 1},接下来我们用二路归并法对其进行排序。
首先:找到数组中间的数字3,接下来以{13 7 9 3}(数字3的左边)为一组进行排序,{14 29 16 1}(数字3的右边)为一组进行排序,找寻{13,7,9,3}的中间数字7,(数字7的左边){13,7}为一组,(数字7的右边){9,3}为一组进行排序,,,
==最后的算法过程可简化为如下模式【 {(13,7)(9,3)} {(14,29)(16,1)} 】=》【 { (7,13) (3,9) } {(14,29)(1,16)} 】=》【 { 3,7,9,13} {1,14,16,29}】=》【1,3,7,9,13,14,16,29】
//目的:将数组a[n]进行从小到大排序
void pai(int a[],int low,int high)
{
    if(low<high)
    {
        int mid=(low+high)/2;
        pai(a,low,mid);
        pai(a,mid+1,high);
        merge(a,low,high);//将a[low],a[low+1]...a[high]进行由小到大的排序。
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值