算法导论课后第二章习题

转载自:点击打开链接

2.1-1

初始 31 41 59 26 41 58
第一遍 31  41  59 26 41 58
第二遍 31 41  59  26 41 58
第三遍  26   31 41  59 41 58
第四遍 26 31 41  41   59  58

第五遍 26 31 41 41 58 59

2.1-2 把顺序改成非递增只要把判断大小时的条件改成小于即可

Insertion-Sort(A)
for j = 2 to A.length
    key = A[j]
    i = j - 1
    while i > 0 and A[i] < key
        A[i + 1] = A[i]
        i = i - 1
    A[i + 1] = key

2.1-3

Linear-Search(A, v)
for i = 1 to A.length
    if A[i] == v
        return i
return NIL

2.1-4

Input: 两个n比特序列 $A = \{ a_1, a_2, …, a_n \}$ $B = \{ b_1, b_2, …, b_n \}$

Output: 一个n+1比特序列 $C = \{ c_1, c_2, …, c_{n+1} \}$ 使得等式 $(c_{n+1} c_n…c_2 c_1)_2 = (a_n a_{n-1}…a_2 a_1)_2 + (b_n b_{n-1}…b_2 b_1)_2$ 成立
利用全加器的逻辑位运算可以简单得到每一位的结果和进位。
Binary-Addition(A, B)
    inc = 0
    i = 1
    while i <= A.length
        k = A[i] xor B[i]
        g = A[i] and B[i]
        C[i] = k xor inc
        inc = inc and k or g
        i = i + 1
    C[i] = inc
    return C

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值