矩阵 代入计算

设有n阶三对角矩阵A,即非零元素都位于主对角线以及与主对角线平行且紧邻的两条对角线上,现对该矩阵进行按行压缩存储,若其压储空间用数组B表示,A的元素下标从0开始,B的元素下标从1开始。已知A[0,0]存储在B[1],A[n-1,n-1]存储在B[3n-2],那么非零元素Ai,j存储在B[( )]。C
(59)
A.2i+j-1

B. 2i+j

C.2i+j+1

D.3i-j+1

答案:C


(1)已知A[0,0]存储在B[1]上
得到b1的位置得 i=0,j=0 由B[1]结果位1 代入
A选项 2i+j-1= 2*0+0-1=-1 结果为-1不成立为1 排除
B选项 2i+j = 2*0+0=0 结果为0不成立为1 排除
C选项 2i+j+1 = 2*0+0+1=1 结果为1 满足A 待选
D选项 3i-j+1 = 3*0-0+1=1 结果为1 满足A 待选
(2)我们再看已知条件A[n-1,n-1]存储在B[3n-2]
代入i=n-1,j=n-1结果为3n-2 上面CD中代入
C选项 2i+j+1 = 2*(n-1)+(n-1)+1= 3n-2 结果为3n-2 满足A和B 成立
D选项 3i-j+1 = 3*(n-1)-(n-1)+1 = 2n-3 结果为2n-3 不满足B 排除
所以得出结果C为正确选项.

堆的性质(父最大)

1.堆中某个节点的值总是不大于或不小于其父节点的值;
2.堆总是一棵完全二叉树。

利用逐点插入法建立序列(50,72,43,85,75,20,35,45,65,30)对应的二叉排序树以后,查找元素30要进行()次元素间的比较。
A . 4
B . 5
C . 6
D . 7

① 50,根
② 72,72比50,大,在右
③ 43,43比50,小,在左
④ 85,85比50,大,在右;85比72,大,在右(右右)
⑤ 75,75比50,大,在右;75比72,大,在右;75比85,小,在左(右右左)
⑥ 20,20比50,小,在左;20比43,小,在左(左左)
⑦ 35,35比50,小,在左;35比43,小,在左;35比20,大,在右(左左右)
⑧ 45,45比50,小,在左;45比43,大,在右(左右)
⑨ 65,65比50,大,在右;65比75,小,在左(右左)
⑩ 30,30比50,小,在左;30比43,小,在左;30比20,大,在右;30比35,小,在左;(左左右左)

已知一个线性表(38,25,74,63,52,48),假定采用散列函数h(key)=key%7计算散列地址,并散列存储在散列表A[0..6]中,若采用线性探测方法解决冲突,则在该散列表上进行等概率成功查找的平均查找长度为_____(52)____ 。
(52)A.1.5 B.1.7C.2.0D.2.3

解:
h38 = 38%7 = 5……3
h25 = 25%7 = 3……4
h74 = 74%7 = 10……4
h63 = 63%7 = 9……0
h52 = 52%7 = 7……3
h48 = 48%7 = 6……6

首先存入第一个元素38,由于h(38)=38%7=3,又因为3号单元现在没有数据,所以把38存入3号单元。
接着存入第二个元素25,由于h(25)=25%7=4,又因为4号单元现在没有数据,所以把25存入4号单元。
 接着存入第三个元素74,由于h(74)=74%7=4,此时的4号单元已经被25占据,所以进行线性再散列,线性再散列的公式为:Hi=(H(key)+di)% m ,其中的di=1,2,3,4...。所以H1=(4+1)%7=5,此时的单元5没有存数据,所以把74存入到5号单元。
接着存入第四个元素63,由于h(63)=63%7=0,此时的0号单元没有数据,所以把63存入0号单元。
 接着存入第五个元素52,由于h(52)=52%7=3,此时的3号单元已被38占据,所以进行线性再散列:H1=(3+1)%7=4,但4号单元也被占据了,所以再次散列:H2=(3+2)%7=5,但5号单元也被占据了,所以再次散列:H3=(3+3)%7=6,6号单元为空,所以把52存入6号单元。
最后存入第六个元素48,由于h(48)=48%7=6,此时的6号单元已被占据,所以进行线性再散列:H1=(6+1)%7=0,但0号单元也被占据了,所以再次散列:H2=(6+2)%7=1,1号单元为空,所以把48存入1号单元。
如果一个元素存入时,进行了N次散列,相应的查找次数也是N,所以38,25,63这三个元素的查找长度为1,74的查找长度为2,48的查找长度为3,52的查找长度为4。

所以平均查找长度为:(1+3+1+1+2+4)/6=2。

 0123456
位置6348 38257452
比较次数13 1124

在字符串的KMP模式匹配算法中,需先求解模式串的next函数值,其定义如下式所示,j表示模式串中字符的序号(从1开始)。若模式串p为“abaac”,则其next函数值为(60)。
A.01234  B.01122  C.01211  D.01111

解:

1.先将这个字符串写出来。abaac

0a    
0ab   
1aba  
1abaa 
0abaac

出这些字符串前缀式和后缀式,当他们前缀和后缀一样的数有几个就写几个,没有就写0.

2.

J12345
模式串abaac
抄上图的00110
前加-1-10011
每个值+101122

答案:01122

考虑一个背包问题,共有n=5个物品,背包容量为W=10,物品的重量和价值分别为:w={2,2,6,5,4},v={6, 3,5,4,6},求背包问题的最大装包价值。若此为0-1背包问题,分析该问题具有最优子结构,定义递归式为
其中c(i,j)表示i个物品、容量为j的0-1背包问题的最大装包价值,最终要求解c(n,W)。
采用自底向上的动态规划方法求解,得到最大装包价值为( ),算法的时间复杂度为( )。
若此为部分背包问题,首先采用归并排序算法,根据物品的单位重量价值从大到小排序,然后依次将物品放入背包直至所有物品放入背包中或者背包再无容量,
则得到的最大装包价值为( ),算法的时间复杂度为( )。

问题1选项
A.11
B.14
C.15
D.16.67
问题2选项
A.Θ(nW)
B.Θ(nlgn)
C.Θ(n2)
D.Θ(nlgnW)
问题3选项
A.11
B.14
C.15
D.16.67
问题4选项
A.Θ(nW)
B.Θ(nlgn)
C.Θ(n2)
D.Θ(nlgnW)

第1题:C  第2题:A  第3题:D  第4题:B

解:
动态规划:最优子,重复子,O(n)~O(n^2)
最大装包价值:
价值v= {6, 3,5,4,6},
重量w={2,2,6,5,4},
取第1个和第5个,6+6=12,
再取第2个,12+3=15
时间复杂度:O(nW)

归并:分治,O(nlogn)
先求平均值,再排序
价值v= {6, 3,5,    4,    6},
重量w={2, 2,6,    5,    4},
单位v= {3, 1.5,5/6,0.8,1.5},
第1个,第2个,第5个的单位价值最高
重量w=2+2+4=8,
10-8=2,还有2个重量,可以选择第3个=6/3=2

重量v=6+3+6=15,
第3个=5/3=1.67,
即15+1.67=16.67

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值