数据结构形成性考核作业4讲评
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4. 在堆排序的过程中,对n个记录建立初始堆需要进行 ________次筛运算,由初始堆到堆排序结束,需要对树根结点进行 _______次筛运算。n/2、n-1
5.在堆排序的过程中,对任一分支结点进行筛运算的时间复杂度 为________,整个堆排序过程的时间复杂度为________。 O(log2n)、O(nlog2n)
h(46)=46%13=7
h(18)=18%13=5
h(70)=70%13=5 冲突
h1(70)=h(70)+1=6 冲突
h2(70)=7 冲突
h3(70)=8
平均查找长度ASL=(8+2+4)/10=1.4
散列表Ht[13]为:
0 1 2 3 4 5 6 7 8 9 10 11 12
29 94 18 32 46 70 48 75 63 25
15.假定一组记录的排序码为(46,79,56,38,40,80),对其进
行归并排序的过程中,第二趟归并后的结果为 ________________。[38 46 56 79][40 84]
二、应用题 1. 给出每一种排序算法的时间复杂度、空间复杂度及稳定性。 解:
排序方法 时间复杂度 空间复杂度 稳定性
15.在线性表的________存储中,无法查找到一个元素的前驱 或后继元素。散列
16.在线性表的________存储中,对每一个元素只能采用顺序 查找。链接
17.假定对线性表(38,25,74,52,48)进行散列存储,采用
H(K)=K % 7作为散列函数,若分别采用线性探查法和链接法处理 冲突,则对各自散列表进行查找的平均查找长度分别为_______和 ________。2、4/3
11.在索引表中,若一个索引项对应主表中的一条记录,则称此 索引为________索引,若对应主表中的若干条记录,则称此索引为 ________索引。稠密、稀疏
12.在稀疏索引表上进行二分查找时,若当前查找区间为空,则 不是返回-1表示查找失败,而是返回该区间的________。下限值 (即low值)
int Binsch(indexlist B, int m, IndexKeyType K)
{
int low=0, high=m-1;
while(low<=high) {
int mid=(low+high)/2;
if(K==B[mid].index)
return B[mid].start;
else if(K<B[mid].index)
high=mid-1;
else
low=mid+1;
}
if(low<m) return B[low].start;
else return -1;
}
3. 假定一个待散列存储的线性表为
(32,75,29,63,48,94,25,46,18,70),散列地址空间为
HT[13],若采用除留余数法构造散列函数和线性探查法处理冲突,
18.假定要对长度n=100的线性表进行散列存储,并采用链接法 处理冲突,则对于长度m=20的散列表,每个散列地址的单链表的长 度平均为________。5
19.在线性表的散列存储中,装填因子又称为装填系数,若用m 表示散列表的长度,n表示待散列存储的元素的个数,则等于 ________。n/m 20. 在线性表的散列存储中,处理冲突有_____和______两种方 法。开放定址法、链接法 21.对于线性表(18,25,63,50,42,32,90)进行散列存储时,若选 用H(K)=K % 9作为散列函数,则散列地址为0的元素有_____ 个,散列地址为5的元素有________个。3、2 22.对于一棵含有N个关键字的m阶B_树,其最小高度为 ________,最大高度为________。logm(N+1)、 1+logm/2( )
5.从有序表(12,18,30,43,56,78,82,95)中依次二分查找43 和56元素时,其查找长度分别为________和________。1、3 6.对于二分查找所对应的判定树,它既是一棵____,又是一棵 __。二叉搜索树、理想平衡树
7.假定对长度n=50的有序表进行二分查找,则对应的判定树高 度为________,判定树中前5层的结点数为________,最后一 层的结点数为________。6、31、19 8.在索引表中,每个索引项至少包含有_____域和______域这两 项。索引值、子表开始域
8.快速排序在平均情况下的空间复杂度为________,在最坏 情况下的空间复杂度为________。O(log2n)、O(n)
9.在快速排序方法中,进行每次划分时,是从当前待排序区间的 ________向________依次查找出处于逆序的元素并交换之,最 后将基准元素交换到一个确定位置,从而以该位置把当前区间划分为
27.在对m阶B_树插入元素的过程中,每向一个结点插入一个索 引项(叶子结点中的索引项为关键字和空指针)后,若该结点的索引项 数等于_______个,则必须把它分裂为________个结点。 M、 两
28.在从m阶的B_树删除元素的过程中,当一个结点被删除掉一 个索引项后,所含索引项数等于________个,并且它的左、右兄弟 结点中的索引项数均等于________个,则必须进行结点合 并。m/2-2、m/2-1
试求出每一元素的散列地址,画出最后得到的散列表,求出平均查找
长度。
解:
每一元素的散列地址为:
h(32)=32%13=6
h(75)=75%13=10
h(29)=29%13=3
h(63)=63%13=11 h(48)=48%13=9
h(94)=94%13=3 冲突
h1(94)=h(94)+1=4 h(25)=25%13=12
29.向一棵B_树插入元素的过程中,若最终引起树根结点的分 裂,则新树比原树的高度________。增加1
30.从一棵B_树删除元素的过程中,若最终引起树根结点的合 并,则新树比原树的高度________。减少1
二、应用题 1. 假定查找有序表A[25]中每一元素的概率相等,试分别求出进 行顺序、二分和分块(假定被分为5块,每块5个元素)查找每一元素 时的平均查找长度。 解: 顺序查找:ASL=12.5 二分查找: ASL=99/25 分块查找: ASL=6 2. 编写一个非递归算法,在稀疏有序索引表中二分查找出给定值K 所对应的索引项,即索引值刚好大于等于K的索引项,返回该索引项 的start域的值,若查找失败则返回-1。 解:
9.假定一个线性表为(12,23,74,55,63,40,82,36),若按 Key % 3条件进行划分,使得同一余数的元素成为一个子表,则得 到的三个子表分别为________、________和________。 (12,63,36)、(55,40,82)、23,74)
10. 假定一个线性表为 (”abcd”,”baabd”,”bcef”,”cfg”,”ahij”,”bkwte”,”ccdt”,”aayb”), 若按照字符串的第一个字母进ቤተ መጻሕፍቲ ባይዱ划分,使得同一个字母被划分在一个 子表中,则得到的a,b,c三个子表的长度分别为________、 ________和________。3、3、2
12.在二路归并排序中,对n个记录进行归并的趟数为 ________。log2n
13. 在归并排序中,进行每趟归并的时间复杂度为________, 整个排序过程的时间复杂度为________,空间复杂度为 ________。O(n)、 O(nlog2n)、 O(n)
14.对20个记录进行归并排序时,共需要进行________趟归 并,在第三趟归并时是把长度为________的有序表两两归并为长度 为________的有序表。5、4、8
23. 已知一棵3阶B_树中含有50个关键字,则该树的最小高度为 ________,最大高度为________。4、5
24.在一棵9阶的B_树中,每个非树根结点的关键字数目最少为 ________个,最多为________个。4、8 25.在一棵m阶B_树上,每个非树根结点的关键字数目最少为 _____个,最多为________个,其子树数目最少为 ________,最多为________。m/2-1、m-1、m/2 m 26.在一棵B_树中,所有叶子结点都处在________上,所有叶子 结点中空指针等于所有________总数加1。同一层、关键字
6.假定一组记录的排序码为(46,79,56,38,40,84),则利用堆 排序方法建立的初始堆为 ________________。(84,79,56,38,40,46)
7. 快速排序在平均情况下的时间复杂度为________,在最坏情 况下的时间复杂度为________。O(nlog2n)、(n2)
2.每次直接或通过基准元素间接比较两个元素,若出现逆序排列 时就交换它们的位置,此种排序方法叫做________排序;每次使两 个相邻的有序表合并成一个有序表的排序方法叫做________排序。 交换、二路归并
3.在直接选择排序中,记录比较次数的时间复杂度为 ________,记录移动次数的时间复杂度为________。O(n2)、 O(n)
数据结构形成性考核作业4讲评 第四次作业 第八章 查找
一、填空题 1.以顺序查找方法从长度为n的线性表中查找一个元素时,平均查找 长度为________,时间复杂度为________。(n+1)/2、O(n) 2.以二分查找方法从长度为n的线性表中查找一个元素时,平均查找 长度小于等于________,时间复杂度为 ________。log2(n+1)、O(log2n) 3.以二分查找方法从长度为12的有序表中查找一个元素时,平均查 找长度为____。37/12 4.以二分查找方法查找一个线性表时,此线性表必须是____存储的 _____表。顺序、有序
图8-1 5. 已知一组关键字为(26,38,12,45,73,64,30,56),试依次插
入关键字生成一棵3阶的B_树,画出每次插入一个关键字后B_树的结 构。 解: 插入过程如图8-2所示。 图8-2
第九章 排序 一、填空题
1.每次从无序表中取出一个元素,把它插入到有序表中的适当位 置,此种排序方法叫做________排序;每次从无序表中挑选出一个 最小或最大元素,把它交换到有序表的一端,此种排序方法叫做 ________排序。插入、选择
13.假定对长度n=100的线性表进行索引查找,并假定每个子表 的长度均为
,则进行索引查找的平均查找长度为________,时间复杂度为 ________。11、O(
) 14. 若对长度n=10000的线性表进行二级索引存储,每级索引表中 的索引项是下一级20个记录的索引,则一级索引表的长度为 ______,二级索引表的长度为________。500、25
34)
(1) 利用直接插入排序的方法写出每次向前面有序表插入一个元素
后的排列结果。
解:
答案省略 (2) 利用直接选择排序方法写出每次选择和交换后的排列结果。
4. 假定一个待散列存储的线性表为
(32,75,29,63,48,94,25,36,18,70),散列地址空间为
HT[11],若采用除留余数法构造散列函数和链接法处理冲突,试求
出每一元素的散列地址,画出最后得到的散列表,求出平均查找长
度。
解:
平均查找长度ASL=(7*1+3*2)/10=1.3
散列表如图8-1所示。
前后两个子区间。两端、中间 10. 假定一组记录的排序码为(46,79,56,38,40,80),对其进
行快速排序的一次划分的结果为________________。[38 40]46[56 79 84]
11. 假定一组记录的排序码为(46,79,56,38,40,80),对其进 行快速排序的过程中,对应二叉搜索树的深度为________,分支结 点数为________。4、4
快速
O(nlog2n) O(log2n) 不稳定
堆
O(nlog2n) O(1)
不稳定
归并
O(nlog2n) O(n)
稳定
直接插入 O(n2)
O(1)
稳定
直接选择 O(n2)
O(1)
不稳定
气泡
O(n2)
O(1)
稳定
2. 已知一组元素的排序码为
(46,74,16,53,14,26,40,38,86,65,27,
5.在堆排序的过程中,对任一分支结点进行筛运算的时间复杂度 为________,整个堆排序过程的时间复杂度为________。 O(log2n)、O(nlog2n)
h(46)=46%13=7
h(18)=18%13=5
h(70)=70%13=5 冲突
h1(70)=h(70)+1=6 冲突
h2(70)=7 冲突
h3(70)=8
平均查找长度ASL=(8+2+4)/10=1.4
散列表Ht[13]为:
0 1 2 3 4 5 6 7 8 9 10 11 12
29 94 18 32 46 70 48 75 63 25
15.假定一组记录的排序码为(46,79,56,38,40,80),对其进
行归并排序的过程中,第二趟归并后的结果为 ________________。[38 46 56 79][40 84]
二、应用题 1. 给出每一种排序算法的时间复杂度、空间复杂度及稳定性。 解:
排序方法 时间复杂度 空间复杂度 稳定性
15.在线性表的________存储中,无法查找到一个元素的前驱 或后继元素。散列
16.在线性表的________存储中,对每一个元素只能采用顺序 查找。链接
17.假定对线性表(38,25,74,52,48)进行散列存储,采用
H(K)=K % 7作为散列函数,若分别采用线性探查法和链接法处理 冲突,则对各自散列表进行查找的平均查找长度分别为_______和 ________。2、4/3
11.在索引表中,若一个索引项对应主表中的一条记录,则称此 索引为________索引,若对应主表中的若干条记录,则称此索引为 ________索引。稠密、稀疏
12.在稀疏索引表上进行二分查找时,若当前查找区间为空,则 不是返回-1表示查找失败,而是返回该区间的________。下限值 (即low值)
int Binsch(indexlist B, int m, IndexKeyType K)
{
int low=0, high=m-1;
while(low<=high) {
int mid=(low+high)/2;
if(K==B[mid].index)
return B[mid].start;
else if(K<B[mid].index)
high=mid-1;
else
low=mid+1;
}
if(low<m) return B[low].start;
else return -1;
}
3. 假定一个待散列存储的线性表为
(32,75,29,63,48,94,25,46,18,70),散列地址空间为
HT[13],若采用除留余数法构造散列函数和线性探查法处理冲突,
18.假定要对长度n=100的线性表进行散列存储,并采用链接法 处理冲突,则对于长度m=20的散列表,每个散列地址的单链表的长 度平均为________。5
19.在线性表的散列存储中,装填因子又称为装填系数,若用m 表示散列表的长度,n表示待散列存储的元素的个数,则等于 ________。n/m 20. 在线性表的散列存储中,处理冲突有_____和______两种方 法。开放定址法、链接法 21.对于线性表(18,25,63,50,42,32,90)进行散列存储时,若选 用H(K)=K % 9作为散列函数,则散列地址为0的元素有_____ 个,散列地址为5的元素有________个。3、2 22.对于一棵含有N个关键字的m阶B_树,其最小高度为 ________,最大高度为________。logm(N+1)、 1+logm/2( )
5.从有序表(12,18,30,43,56,78,82,95)中依次二分查找43 和56元素时,其查找长度分别为________和________。1、3 6.对于二分查找所对应的判定树,它既是一棵____,又是一棵 __。二叉搜索树、理想平衡树
7.假定对长度n=50的有序表进行二分查找,则对应的判定树高 度为________,判定树中前5层的结点数为________,最后一 层的结点数为________。6、31、19 8.在索引表中,每个索引项至少包含有_____域和______域这两 项。索引值、子表开始域
8.快速排序在平均情况下的空间复杂度为________,在最坏 情况下的空间复杂度为________。O(log2n)、O(n)
9.在快速排序方法中,进行每次划分时,是从当前待排序区间的 ________向________依次查找出处于逆序的元素并交换之,最 后将基准元素交换到一个确定位置,从而以该位置把当前区间划分为
27.在对m阶B_树插入元素的过程中,每向一个结点插入一个索 引项(叶子结点中的索引项为关键字和空指针)后,若该结点的索引项 数等于_______个,则必须把它分裂为________个结点。 M、 两
28.在从m阶的B_树删除元素的过程中,当一个结点被删除掉一 个索引项后,所含索引项数等于________个,并且它的左、右兄弟 结点中的索引项数均等于________个,则必须进行结点合 并。m/2-2、m/2-1
试求出每一元素的散列地址,画出最后得到的散列表,求出平均查找
长度。
解:
每一元素的散列地址为:
h(32)=32%13=6
h(75)=75%13=10
h(29)=29%13=3
h(63)=63%13=11 h(48)=48%13=9
h(94)=94%13=3 冲突
h1(94)=h(94)+1=4 h(25)=25%13=12
29.向一棵B_树插入元素的过程中,若最终引起树根结点的分 裂,则新树比原树的高度________。增加1
30.从一棵B_树删除元素的过程中,若最终引起树根结点的合 并,则新树比原树的高度________。减少1
二、应用题 1. 假定查找有序表A[25]中每一元素的概率相等,试分别求出进 行顺序、二分和分块(假定被分为5块,每块5个元素)查找每一元素 时的平均查找长度。 解: 顺序查找:ASL=12.5 二分查找: ASL=99/25 分块查找: ASL=6 2. 编写一个非递归算法,在稀疏有序索引表中二分查找出给定值K 所对应的索引项,即索引值刚好大于等于K的索引项,返回该索引项 的start域的值,若查找失败则返回-1。 解:
9.假定一个线性表为(12,23,74,55,63,40,82,36),若按 Key % 3条件进行划分,使得同一余数的元素成为一个子表,则得 到的三个子表分别为________、________和________。 (12,63,36)、(55,40,82)、23,74)
10. 假定一个线性表为 (”abcd”,”baabd”,”bcef”,”cfg”,”ahij”,”bkwte”,”ccdt”,”aayb”), 若按照字符串的第一个字母进ቤተ መጻሕፍቲ ባይዱ划分,使得同一个字母被划分在一个 子表中,则得到的a,b,c三个子表的长度分别为________、 ________和________。3、3、2
12.在二路归并排序中,对n个记录进行归并的趟数为 ________。log2n
13. 在归并排序中,进行每趟归并的时间复杂度为________, 整个排序过程的时间复杂度为________,空间复杂度为 ________。O(n)、 O(nlog2n)、 O(n)
14.对20个记录进行归并排序时,共需要进行________趟归 并,在第三趟归并时是把长度为________的有序表两两归并为长度 为________的有序表。5、4、8
23. 已知一棵3阶B_树中含有50个关键字,则该树的最小高度为 ________,最大高度为________。4、5
24.在一棵9阶的B_树中,每个非树根结点的关键字数目最少为 ________个,最多为________个。4、8 25.在一棵m阶B_树上,每个非树根结点的关键字数目最少为 _____个,最多为________个,其子树数目最少为 ________,最多为________。m/2-1、m-1、m/2 m 26.在一棵B_树中,所有叶子结点都处在________上,所有叶子 结点中空指针等于所有________总数加1。同一层、关键字
6.假定一组记录的排序码为(46,79,56,38,40,84),则利用堆 排序方法建立的初始堆为 ________________。(84,79,56,38,40,46)
7. 快速排序在平均情况下的时间复杂度为________,在最坏情 况下的时间复杂度为________。O(nlog2n)、(n2)
2.每次直接或通过基准元素间接比较两个元素,若出现逆序排列 时就交换它们的位置,此种排序方法叫做________排序;每次使两 个相邻的有序表合并成一个有序表的排序方法叫做________排序。 交换、二路归并
3.在直接选择排序中,记录比较次数的时间复杂度为 ________,记录移动次数的时间复杂度为________。O(n2)、 O(n)
数据结构形成性考核作业4讲评 第四次作业 第八章 查找
一、填空题 1.以顺序查找方法从长度为n的线性表中查找一个元素时,平均查找 长度为________,时间复杂度为________。(n+1)/2、O(n) 2.以二分查找方法从长度为n的线性表中查找一个元素时,平均查找 长度小于等于________,时间复杂度为 ________。log2(n+1)、O(log2n) 3.以二分查找方法从长度为12的有序表中查找一个元素时,平均查 找长度为____。37/12 4.以二分查找方法查找一个线性表时,此线性表必须是____存储的 _____表。顺序、有序
图8-1 5. 已知一组关键字为(26,38,12,45,73,64,30,56),试依次插
入关键字生成一棵3阶的B_树,画出每次插入一个关键字后B_树的结 构。 解: 插入过程如图8-2所示。 图8-2
第九章 排序 一、填空题
1.每次从无序表中取出一个元素,把它插入到有序表中的适当位 置,此种排序方法叫做________排序;每次从无序表中挑选出一个 最小或最大元素,把它交换到有序表的一端,此种排序方法叫做 ________排序。插入、选择
13.假定对长度n=100的线性表进行索引查找,并假定每个子表 的长度均为
,则进行索引查找的平均查找长度为________,时间复杂度为 ________。11、O(
) 14. 若对长度n=10000的线性表进行二级索引存储,每级索引表中 的索引项是下一级20个记录的索引,则一级索引表的长度为 ______,二级索引表的长度为________。500、25
34)
(1) 利用直接插入排序的方法写出每次向前面有序表插入一个元素
后的排列结果。
解:
答案省略 (2) 利用直接选择排序方法写出每次选择和交换后的排列结果。
4. 假定一个待散列存储的线性表为
(32,75,29,63,48,94,25,36,18,70),散列地址空间为
HT[11],若采用除留余数法构造散列函数和链接法处理冲突,试求
出每一元素的散列地址,画出最后得到的散列表,求出平均查找长
度。
解:
平均查找长度ASL=(7*1+3*2)/10=1.3
散列表如图8-1所示。
前后两个子区间。两端、中间 10. 假定一组记录的排序码为(46,79,56,38,40,80),对其进
行快速排序的一次划分的结果为________________。[38 40]46[56 79 84]
11. 假定一组记录的排序码为(46,79,56,38,40,80),对其进 行快速排序的过程中,对应二叉搜索树的深度为________,分支结 点数为________。4、4
快速
O(nlog2n) O(log2n) 不稳定
堆
O(nlog2n) O(1)
不稳定
归并
O(nlog2n) O(n)
稳定
直接插入 O(n2)
O(1)
稳定
直接选择 O(n2)
O(1)
不稳定
气泡
O(n2)
O(1)
稳定
2. 已知一组元素的排序码为
(46,74,16,53,14,26,40,38,86,65,27,