转载自:点击打开链接
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