【2017年整理】第五章习题解答.docVIP

  • 33
  • 0
  • 约1.76万字
  • 约 7页
  • 2017-02-09 发布于浙江
  • 举报
【2017年整理】第五章习题解答

第五章习题解答 P32/5.2 假设按低下标优先存储整数数组A9×3×5×8时,第一个元素的字节地址是100,每个整数占四个字节。问下列元素的存储地址是什么? (1)a0000 (2)a1111 (3)a3125 (4)a8247 解:LOC(a0000)=100 LOC(a1111)=100+(3×5×8×1+5×8×1+8×1+1)×4=776 LOC(a3125)=100+(3×5×8×3+5×8×1+8×2+5)×4=1784 LOC(a8247)=100+(3×5×8×8+5×8×2+8×4+7)×4=4416 P34/5.18 试设计一个算法,将数组An中的元素A[0]至A[n-1]循环右移k位,并要求只用一个元素大小的附加存储,元素移动或交换次数为O(n) 解: 方法一: 分析:要把A的元素循环右移k位,则A[0]移至A[k],A[k]移至A[2k]......直到最终回到A[0].然而这并没有全部解决问题,因为有可能有的元素在此过程中始终没有被访问过,而是被跳了过去.分析可知,当n和k的最大公约数为p时,只要分别以A[0],A[1],...A[p-1]为起点执行上述算法,就可以保证每一个元素都被且仅被右移一次,从而满足题目要求.也就是说,A的所有元素分别处在p个循环链上面.举例如下: n=15,k=6,则p=3. 第一条链: A[0]-A[6],A[6]-

文档评论(0)

1亿VIP精品文档

相关文档