第二章 2.3 设计算法

2.3-1 使用图2-4作为模型,说明归并排序在数组A=<3,41,52,26,38,57,9,49>上得操作。

{3,41}{26,52}{38,57}{9,49}
{3,26,41,52}{9,38,49,57}
{3,9,26,38,41,49,52,57}

2.3-2重写过程MERGE,使之不使用哨兵,而是一旦数组L或R的所有元素均被复制回A就立刻停止,然后把另一个数组的剩余部分复制回A
MERGE(A,p,q,r)
    n1=q-p+1
    n2=r-1
    '让 L[1...n1+1]和 R[1...n2+1] 为截取的新数组'
    for i=1 to n1
        L[i]=A[p+i-1]
    for j=1 to n2
        R[j]=A[q+j]
    '把两个数组合并成一个数组'
    i=1
    j=1
    n=min{n1,n2}
    for k=p to n
        if L[i]<=R[j]
            A[k]=L[i]
            i++
        else 
            A[k]=R[j]
            j++

'判断L数组是否去空,若为空将R内容移入A'  
    if i==L.length+1
        for k to r
            A[k]=R[j]
            j++
    else if j==R.length+1
         for k to r
            A[k]=l[i]
            i++
2.3-3 用数学归纳法证明:当n刚好是2的幂时,以下递归式的解是T(n)=nlgn。

T(n)=(2...........................................n=22Tn/2
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值