数据结构课后习题第九章

合集下载

《数据结构》第九章习题参考答案

《数据结构》第九章习题参考答案

《数据结构》第九章习题参考答案《数据结构》第九章习题参考答案一、判断题(在正确说法的题后括号中打“√”,错误说法的题后括号中打“×”)1、快速排序是一种稳定的排序方法。

(×)2、在任何情况下,归并排序都比简单插入排序快。

(×)3、当待排序的元素很大时,为了交换元素的位置,移动元素要占用较多的时间,这是影响时间复杂度的主要因素。

(√)4、内排序要求数据一定要以顺序方式存储。

(×)5、直接选择排序算法在最好情况下的时间复杂度为O(n)。

( ×)6、快速排序总比简单排序快。

( ×)二、单项选择题1.在已知待排序文件已基本有序的前提下,效率最高的排序方法是(A)。

A.直接插入排序B.直接选择排序C.快速排序D.归并排序2.下列排序方法中,哪一个是稳定的排序方法?(B)A.直接选择排序B.折半插入排序C.希尔排序D.快速排序3、比较次数与排序的初始状态无关的排序方法是( B)。

A.直接插入排序B.起泡排序(时间复杂度O(n2))C.快速排序D.简单选择排序4、对一组数据(84,47,25,15,21)排序,数据的排列次序在排序的过程中的变化为(1)84 47 25 15 21 (2)15 47 25 84 21 (3)15 21 25 84 47 (4)15 21 25 47 84 则采用的排序是( A)。

A. 选择B. 冒泡C. 快速D. 插入5、快速排序方法在(D)情况下最不利于发挥其长处。

A. 要排序的数据量太大B. 要排序的数据中含有多个相同值C. 要排序的数据个数为奇数D. 要排序的数据已基本有序6、用某种排序方法对线性表{25,84,21,47,15,27,68,35,20}进行排序,各趟排序结束时的结果为:(基准)20,21,15,25,84,27,68,35,47(25)15,20,21,25,47,27,68,35,84(左20右47)15,20,21,25,35,27,47,68,84(左35右68)15,20,21,25,27,35,47,68,84 ;则采用的排序方法为(C)。

数据结构第九章排序习题与答案

数据结构第九章排序习题与答案

习题九排序一、单项选择题1.下列内部排序算法中:A.快速排序 B.直接插入排序C. 二路归并排序D.简单选择排序E. 起泡排序F.堆排序(1)其比较次数与序列初态无关的算法是()(2)不稳定的排序算法是()(3)在初始序列已基本有序(除去n 个元素中的某 k 个元素后即呈有序, k<<n)的情况下,排序效率最高的算法是()(4)排序的平均时间复杂度为O(n?logn)的算法是()为 O(n?n) 的算法是()2.比较次数与排序的初始状态无关的排序方法是( )。

A.直接插入排序B.起泡排序C.快速排序D.简单选择排序3.对一组数据( 84, 47, 25, 15, 21)排序,数据的排列次序在排序的过程中的变化为(1) 84 47 25 15 21(2) 15 47 25 84 21(3) 15 21 25 84 47(4) 15 21 25 47 84则采用的排序是 ()。

A. 选择B.冒泡C.快速D.插入4.下列排序算法中 ( )排序在一趟结束后不一定能选出一个元素放在其最终位置上。

A. 选择B.冒泡C.归并D.堆5.一组记录的关键码为(46,79,56, 38,40, 84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为()。

A. (38,40,46,56,79,84) B. (40,38,46,79,56,84)C. (40,38,46,56,79,84) D. (40,38,46,84,56,79)6.下列排序算法中,在待排序数据已有序时,花费时间反而最多的是()排序。

A.冒泡 B. 希尔C. 快速D. 堆7.就平均性能而言,目前最好的内排序方法是() 排序法。

A. 冒泡B.希尔插入C.交换D.快速8.下列排序算法中,占用辅助空间最多的是:()A. 归并排序B.快速排序C.希尔排序D.堆排序9.若用冒泡排序方法对序列 {10,14,26,29,41,52}从大到小排序,需进行()次比较。

数据结构 第9章答案

数据结构  第9章答案

第9章 查找参考答案一、填空题(每空1分,共10分)1. 在数据的存放无规律而言的线性表中进行检索的最佳方法是 顺序查找(线性查找) 。

2. 线性有序表(a 1,a 2,a 3,…,a 256)是从小到大排列的,对一个给定的值k ,用二分法检索表中与k 相等的元素,在查找不成功的情况下,最多需要检索 8 次。

设有100个结点,用二分法查找时,最大比较次数是 7 。

3. 假设在有序线性表a[20]上进行折半查找,则比较一次查找成功的结点数为1;比较两次查找成功的结点数为 2 ;比较四次查找成功的结点数为 8 ;平均查找长度为 3.7 。

解:显然,平均查找长度=O (log 2n )<5次(25)。

但具体是多少次,则不应当按照公式)1(log 12++=n nn ASL 来计算(即(21×log 221)/20=4.6次并不正确!)。

因为这是在假设n =2m -1的情况下推导出来的公式。

应当用穷举法罗列:全部元素的查找次数为=(1+2×2+4×3+8×4+5×5)=74; ASL =74/20=3.7 !!!4.【计研题2000】折半查找有序表(4,6,12,20,28,38,50,70,88,100),若查找表中元素20,它将依次与表中元素 28,6,12,20 比较大小。

5. 在各种查找方法中,平均查找长度与结点个数n 无关的查找方法是 散列查找 。

6. 散列法存储的基本思想是由 关键字的值 决定数据的存储地址。

7. 有一个表长为m 的散列表,初始状态为空,现将n (n<m )个不同的关键码插入到散列表中,解决冲突的方法是用线性探测法。

如果这n 个关键码的散列地址都相同,则探测的总次数是 n(n-1)/2=( 1+2+…+n-1) 。

(而任一元素查找次数 ≤n-1)二、单项选择题(每小题1分,共27分)( B )1.在表长为n的链表中进行线性查找,它的平均查找长度为A. ASL=n; B. ASL=(n+1)/2;C. ASL=n +1; D. ASL≈log2(n+1)-1( A )2.【计研题2001】折半查找有序表(4,6,10,12,20,30,50,70,88,100)。

数据结构 (c++)第9章 索引技术

数据结构 (c++)第9章 索引技术

第9章索引技术课后习题讲解1.填空题⑴在索引表中,每个索引项至少包含()和()等信息【解答】关键码,关键码对应的记录在存储器中的位置⑵在线性索引中,()称为稠密索引【解答】若文件中的每个记录对应一个索引项⑶分块有序是指将文件划分为若干块,()无序,()有序。

【解答】块内,块间⑷在分块查找方法中,首先查找(),然后查找相应的()。

【解答】索引表,块⑸在10阶B—树中根结点所包含的关键码个数最多为(),最少为()。

【解答】9,1【分析】m阶的B-树中每个结点至多有m棵子树,若根结点不是终端结点,则至少有两棵子树,每个结点中关键码的个数为子树的个数减1。

⑹一棵5阶B—树中,除根结点外,每个结点的子树树目最少为(),最多为()。

【解答】3,5【分析】m阶的B-树中每个结点至多有m棵子树,除根结点之外的所有非终端结点至少有?m/2?棵子树。

⑺对于包含n个关键码的m阶B—树,其最小高度是(),最大高度是()。

【解答】[logm(n+1)],[logm/2(n+1)/2]⑻在一棵B—树中删除关键码,若最终引起树根结点的合并,则新树比原树的高度()。

【解答】减少1层⑼在一棵高度为h的B—树中,叶子结点处于第()层,当向该B—树中插入一个新关键码时,为查找插入位置需读取()个结点。

【解答】h+1,h【分析】B-树的叶子结点可以看作是外部结点(即查找失败)的结点,通常称为外结点。

实际上这些结点不存在,指向这些结点的指针为空,B-树将记录插入在终端结点中。

⑽对于长度为n的线性表,若采用分块查找(假定总块数和每块长度均接近,用顺序查找确定所在块),则时间复杂性为()。

【解答】O()2.判断题⑴在索引顺序表上采用分块查找,在等概率情况下,其平均查找长度不仅与子表个数有关,而且与每一个子表中的对象个数有关。

【解答】对。

分块查找的平均查找长度不仅和文件中记录的个数n有关,而且和每一块中的记录个数t有关,当t取时,ASL取最小值+1。

数据结构第9章练习及答案

数据结构第9章练习及答案

数据结构第9章练习及答案1.顺序查找法适合于存储结构为()的线性表。

A)散列存储B)顺序存储或链接存储C)压缩存储D)索引存储【答案】B2.下面哪些操作不属于静态查找表()A)查询某个特定元素是否在表中B)检索某个特定元素的属性C)插入一个数据元素D)建立一个查找表【答案】C3.下面描述不正确的是()A)顺序查找对表中元素存放位置无任何要求,当n较大时,效率低。

B)静态查找表中关键字有序时,可用折半查找。

C)分块查找也是一种静态查找表。

D)经常进行插入和删除操作时可以采用折半查找。

4.散列查找时,解决冲突的方法有()A)除留余数法B)数字分析法C)直接定址法D)链地址法【答案】D5.若表中的记录顺序存放在一个一维数组中,在等概率情况下顺序查找的平均查找长度为()A)O(1)B)O(log2n) C)O(n) D)O(n2)【答案】C6.对长度为4的顺序表进行查找,若第一个元素的概率为1/8,第二个元素的概率为1/4,第三个元素的概率为3/8,第四个元素的概率为1/4,则查找任一个元素的平均查找长度为()A)11/8 B)7/4 C)9/4 D)11/4【答案】C【解析】对顺序表查找,ASL=,代入题目得:ASL=4*(1/8)+3*(1/4)+2*(3/8)+1*(1/4)=9/47.静态查找表与动态查找表二者的根本差别在于()A)它们的逻辑结构不一样B)施加在其上的操作不同C)所包含的数据元素的类型不一样D)存储实现不一样【答案】B8.若查找表中的记录按关键字的大小顺序存放在一个一维数组中,在等概率情况下折半法查找的平均检索长度是()A)O(n) B)O(log2n) C)O(nlog2n) D)O((log2n)2)【答案】B9.对有14个数据元素的有序表R[14](假设下标从1开始)进行二分查找,搜索到R[4]的关键码等于给定值,此时元素比较顺序依次为()。

A)R[1],R[2],R[3],R[4] B)R[1],R[13],R[2],R[3]C)R[7],R[3],R[5],R[4] D)R[7],R[4],R[2],R[3]【答案】C10.对22个记录的有序表作折半查找,当查找失败时,至少需要比较次关键字。

数据结构第三版第九章课后习题参考答案

数据结构第三版第九章课后习题参考答案

}
}
设计如下主函数:
void main()
{ BSTNode *bt;
KeyType k=3;
int a[]={5,2,1,6,7,4,8,3,9},n=9;
bt=CreatBST(a,n);
//创建《教程》中图 9.4(a)所示的二叉排序树
printf("BST:");DispBST(bt);printf("\n");
#define M 26 int H(char *s)
//求字符串 s 的哈希函数值
{
return(*s%M);
}
构造哈希表 void Hash(char *s[]) //
{ int i,j;
char HT[M][10]; for (i=0;i<M;i++)
//哈希表置初值
HT[i][0]='\0'; for (i=0;i<N;i++) { j=H(s[i]);
//求每个关键字的位置 求 // s[i]的哈希函数值
while (1)
不冲突时 直接放到该处 { if (HT[j][0]=='\0') //
,
{ strcpy(HT[j],s[i]);
break;
}
else
//冲突时,采用线性线性探测法求下一个地址
j=(j+1)%M;
}
} for (i=0;i<M;i++)
printf("%2d",path[j]);
printf("\n");
}
else { path[i+1]=bt->key;

(完整word版)数据结构第九章查找

(完整word版)数据结构第九章查找

第九章查找:习题习题一、选择题1.散列表查找中k个关键字具有同一散列值,若用线性探测法将这k个关键字对应的记录存入散列表中,至少要进行( )次探测。

A. k B。

k+l C. k(k+l)/2 D. l+k (k+l)/22.下述命题( )是不成立的。

A。

m阶B-树中的每一个结点的子树个数都小于或等于mB。

m阶B-树中的每一个结点的子树个数都大于或等于『m/2-1C。

m阶B-树中的每一个结点的子树高度都相等D。

m阶B—树具有k个子树的非叶子结点含有(k-l)个关键字3.如果要求一个基本线性表既能较快地查找,又能适应动态变化的要求,可以采用( )查找方法.A。

分块 B. 顺序 C. 二分 D.散列4.设有100个元素,用折半查找法进行查找时,最大比较次数是( ),最小比较次数是( ).A。

7,1 B.6,l C.5,1 D. 8,15.散列表长m=15,散列表函数H(key)=key%13。

表中已有4个结点:addr(18)=5;addr(32)=6; addr(59)=7;addr(73)=8;其余地址为空,如果用二次探测再散列处理冲突,关键字为109的结点的地址是( )。

A. 8 B。

3 C. 5 D。

46.用分块查找时,若线性表中共有729个元素,查找每个元素的概率相同,假设采用顺序查找来确定结点所在的块时,每块应分( )个结点最佳。

A。

15 B. 27 C。

25 D。

307.散列函数有一个共同性质,即函数值应当以( )取其值域的每个值。

A.同等概率B。

最大概率C。

最小概率D。

平均概率8.设散列地址空间为O.。

m—1,k为关键字,假定散列函数为h(k)=k%p,为了减少冲突,一般应取p为( )。

A.小于m的最大奇数B. 小于m的最大素数C.小于m的最大偶数D.小于m的最大合数9.当向一棵m阶的B-树做插入操作时,若使一个结点中的关键字个数等于( ),则必须分裂成两个结点。

A。

m B。

m-l C.m+l D。

《数据结构》习题集:第9章查找(第1次更新2019-5)

《数据结构》习题集:第9章查找(第1次更新2019-5)

第9章查找一、选择题1.顺序查找一个共有n个元素的线性表,其时间复杂度为(),折半查找一个具有n个元素的有序表,其时间复杂度为()。

【*,★】A.O(n)B. O(log2n)C. O(n2)D. O(nlog2n)2.在对长度为n的顺序存储的有序表进行折半查找,对应的折半查找判定树的高度为()。

【*,★】A.nB.C.D.3.采用顺序查找方式查找长度为n的线性表时,平均查找长度为()。

【*】A.nB. n/2C. (n+1)/2D. (n-1)/24.采用折半查找方法检索长度为n的有序表,检索每个元素的平均比较次数()对应判定树的高度(设高度大于等于2)。

【**】A.小于B. 大于C. 等于D. 大于等于5.已知有序表(13,18,24,35,47,50,62,83,90,115,134),当折半查找值为90的元素时,查找成功的比较次数为()。

【*】A. 1B. 2C. 3D. 46.对线性表进行折半查找时,要求线性表必须()。

【*】A.以顺序方式存储B. 以链接方式存储C.以顺序方式存储,且结点按关键字有序排序D. 以链接方式存储,且结点按关键字有序排序7.顺序查找法适合于存储结构为()的查找表。

【*】A.散列存储B. 顺序或链接存储C. 压缩存储D. 索引存储8.采用分块查找时,若线性表中共有625个元素,查找每个元素的概率相同,假设采用顺序查找来确定结点所在的块时,每块应分()个结点最佳。

【**】A.10B. 25C. 6D. 6259.从键盘依次输入关键字的值:t、u、r、b、o、p、a、s、c、l,建立二叉排序树,则其先序遍历序列为(),中序遍历序列为()。

【**,★】A.abcloprstuB. alcpobsrutC. trbaoclpsuD. trubsaocpl10.折半查找和二叉排序树的时间性能()。

【*】A.相同B. 不相同11.一棵深度为k的平衡二叉树,其每个非终端结点的平衡因子均为0,则该树共有()个结点。

第九章 严蔚敏数据结构课后答案-查找

第九章 严蔚敏数据结构课后答案-查找
mid=(low+high)/2; if(key>=r[mid].key&&key<r[mid+1].key) //查找结束的条件 return mid;
else if(key<r[mid].key) high=mid; else low=mid; } //本算法不存在查找失败的情况,不需要 return 0; }//Locate_Bin
while(p->data>key) p=p->pre; L.sp=p;
} else if(p->data<key) { while(p->data<key) p=p->next;
L.sp=p; } return p; }//Search_DSList 分析:本题的平均查找长度与上一题相同,也是 n/3.
}//while //借助中序遍历找到元素 x 及其前驱和后继结点 if(!ptr) return ERROR; //未找到待删结点 Delete_BSTree(ptr); //删除 x 结点 if(pre&&pre->rtag) pre->rchild=suc; //修改线索 return OK; }//BSTree_Delete_key
printf("a=%d\n",last); if(last<=x&&T->data>x) //找到了大于 x 的最小元素 printf("b=%d\n",T->data); last=T->data; if(T->rchild) MaxLT_MinGT(T->rchild,x); }//MaxLT_MinGT

数据结构第九章习题

数据结构第九章习题


13. 关于杂凑查找说法不正确的有几个 ) 【南京 关于杂凑查找说法不正确的有几个( 理工大学 2000 一、16 (1.5分)】 分 (1)采用链地址法解决冲突时,查找一个元素的 )采用链地址法解决冲突时, 时间是相同的 (2)采用链地址法解决冲突时,若插入规定总是 )采用链地址法解决冲突时, 在链首, 在链首,则插入任一个元素的时间是相同的 (3)用链地址法解决冲突易引起聚集现象 ) (4)再哈希法不易产生聚集 ) A. 1 B. 2 C. 3 D. 4

14. 设哈希表长为 ,哈希函数是 设哈希表长为14, H(key)=key%11,表中已有数据的关键字为 , 表中已有数据的关键字为15, 表中已有数据的关键字为 38,61,84共四个,现要将关键字为 的结点加 共四个, , , 共四个 现要将关键字为49的结点加 到表中,用二次探测再散列法解决冲突, 到表中,用二次探测再散列法解决冲突,则放入 的位置是( 的位置是 ) 【南京理工大学 2001 一、15 (1.5分)】 分 A.8 B.3 C.5 D.9 . . . .
第九章 习题
一、 选择题 1.若查找每个记录的概率均等,则在具有 个记录 若查找每个记录的概率均等, 若查找每个记录的概率均等 则在具有n个记录 的连续顺序文件中采用顺序查找法查找一个记录, 的连续顺序文件中采用顺序查找法查找一个记录, 其平均查找长度ASL为( )。【北京航空航天大学 其平均查找长度 为 。 2000 一、8 (2分)】 分 A. (n-1)/2 B. n/2 C. (n+1)/2 D. n .
5.分别以下列序列构造二叉排序树,与用其它 .分别以下列序列构造二叉排序树, 三个序列所构造的结果不同的是( 三个序列所构造的结果不同的是 ) 【合肥工业 大学2000一、4(2分)】 大学 一 ( 分 A.(100,80, 90, 60, 120,110,130) ( , , , , , , ) B.(100,120,110,130,80, 60, 90) ( , , , , , , ) C.(100,60, 80, 90, 120,110,130) ( , , , , , , ) D. (100,80, 60, 90, 120,130,110) , , , , , ,

数据结构习题及答案(3)

数据结构习题及答案(3)

数据结构习题及答案(3)第九章排序⼀、选择题1.在所有排序⽅法中,关键字⽐较的次数与记录得初始排列次序⽆关的是()(A)希尔排序(B)起泡排序(C)插⼊排序(D)选择排序参考答案:D2.设有1000个⽆序的元素,希望⽤最快的速度挑选出其中前10个最⼤的元素,最好()排序法。

(A)起泡排序(B)快速排序(C)堆排序(D)基数排序参考答案:C3.在待排序的元素序列基本有序的前提下,效率最⾼的排序⽅法是()(A)插⼊排序(B)选择排序(C)快速排序(D)归并排序参考答案:A4.⼀组记录的排序码为(46,79,56,38,40,84),则利⽤堆排序的⽅法建⽴的初始推为()。

(A)79,46,56,38,40,80 (B)84,79,56,38,40,46(C)84,79,56,46,40,38 (D)84,56,79,40,46,38参考答案:B5.⼀组记录的关键码为(46,79,56,38,40,84),则利⽤快速排序的⽅法,以第⼀个记录为基准得到的⼀次划分结果为()。

(A)38,40,46,56,79,84(B)40,38,46,79,56,84(C)40,38,46,56,79,84(D)40,38,46,84,56,79参考答案:C6.⼀组记录的排序码为(25,48,16,35,79,82,23,40,36,72),其中含有5个长度为2的有序表,按归并排序的⽅法对该序列进⾏⼀趟归并后的结果为()。

(A)16,25,35,48,23,40,79,82,36,72(B)16,25,35,48,79,82,23,36,40,72(C)16,25,48,35,79,82,23,36,40,72(D)16,25,35,48,79,23,36,40,72,82参考答案:A7.排序⽅法中,从未排序序列中依次取出元素与⼰排序序列(初始时为空)中的元素进⾏⽐较,将其放⼊⼰排序序列的正确位置上的⽅法,称为()(A)希尔排序(B)起泡排序(C)插⼊排序(D)选择排序参考答案:C8.排序⽅法中,从未排序序列中挑选元素并将其依次放⼊⼰排序序列(初始为空)的⼀端的⽅法,称为()(A)希尔排序(B)归并排序(C)插⼊排序(D)选择排序参考答案:D9.⽤某种排序⽅法对线性表(25,84,21,47,15,27,68,35,20)进⾏排序时,元素序列的变化情况如下:(1)25,84,21,47,15,27,68,35,20 (2)20,15,21,25,47,27,68,35,84(3)15,20,21,25,35,27,47,68,84 (4)15,20,21,25,27,35,47,68,845则所采⽤的排序⽅法是()。

数据结构(C语言版)习题及答案第九章

数据结构(C语言版)习题及答案第九章

习题一、选择题1、一组记录的排序码为(46,79,56,38,40,84),则利用堆排序的方法建立的初始堆为( B )。

A、79,46,56,38,40,80B、84,79,56,38,40,46C、84,79,56,46,40,38D、84,56,79,40,46,382、排序趟数与序列原始状态(原始排列)有关的排序方法是(ACD)方法。

A、插入排序B、选择排序C、冒泡排序D、快速排序3 、下列排序方法中,(B)是稳定的排序方法。

A、直接选择排序B、二分法插入排序C、希尔排序D、快速排序4、数据序列(8,9,10,4,5,6,20,1,2)只能是下列排序算法中( C )的两趟排序后的结果。

A、选择排序B、冒泡排序C、插入排序D、堆排序5、对序列(15,9,7,8,20,-1,4)进行排序,进行一趟排序后,数据的排列变为(4,9,-1,8,20,7,15),则采用的是(C)排序。

A、选择B、快速C、希尔D、冒泡6 、一组待排序记录的关键字为(46,79,56,38,40,84),则利用快速排序,以第一个记录为基准元素得到的一次划分结果为( C)。

A、(38,40,46,56,79,84)B、(40,38,46,79,56,84)C、(40,38,46,56,79,84)D、(40,38,46,84,56,79)7、用直接插入排序对下面四个序列进行排序(由小到大),元素比较次数最少的是( C )。

A、94,32,40,90,80,46,21,69B、32,40,21,46,69,94,90,80C、21,32,46,40,80,69,90,94D、90,69,80,46,21,32,94,408、若用冒泡排序对关键字序列(18,16,14,12,10,8)进行从小到大的排序,所需进行的关键字比较总次数是(B)。

A、10B、15C、21D、349、就排序算法所用的辅助空间而言,堆排序、快速排序和归并排序的关系( A)。

数据结构课后习题答案第九章 查找

数据结构课后习题答案第九章  查找

第九章9.1 若对大小均为n的有序顺序表和无序顺序表分别进行顺序查找,试在下列三种情况下分别讨论两者在等概率时平均查找长度是否相同?(1)查找不成功,即表中没有关键字等于给的值K的记录;(2)查找成功,且表中只有一个关键字等于给定值K的记录;(3)查找成功,且表中有若干关键字等于给定值K的记录,要求找出所有这些记录。

答:(1)相同,有序n+1; 无序n+1(2)相同,有序12n+;无序12n+(3)不相同,对于有序表,找到了第一个与K相同的元素后,只要再找到与K 不同的元素,即可停止查找;对于无序表,则要一直查找到最后一个元素。

9.3 画出对长度为10的有序表进行折半查找的判定树,并分别求其等概率时查找成功和查找不成功的ASL。

查找成功:ASL=1/10(1*1+2*2+3*4+4*3)=2.92.设顺序表中关键字是递增有序的,试写一顺序查找算法,将哨兵设在表的高下标端。

然后求出等概率情况下查找成功与失败时的ASL。

【分析】因为顺序表中关键字是递增有序的,所以从低下标端开始顺序查找,若当前的关键码比要查找的关键码大,说明查找失败,终止查找。

【解答】(1)算法int seqsearch(SeqList R,KeyType K){int i;R[n]=K; // 设置哨兵i=0;while (R[i].key<K)i++;if (R[i].key==K)return i% n;elsereturn 0;}(2)查找长度成功情况:ASL succ=(1+2+3+……+n)/n=(n+1)/2失败情况:K<R[0].key时,比较1次,就终止查找;R[0].key<K< R[1].key时,比较2次,就终止查找;R[1].key<K< R[2].key时,比较3次,就终止查找;…R[n-2].key<K< R[n-1].key时,比较n次,就终止查找;R[n-1].key<K时,比较n+1次,就终止查找;所以ASL unsucc=((1+2+3+……+n+(n+1))/(n+1)=(n+2)/2。

数据结构第九章查找习题解答

数据结构第九章查找习题解答

第九章查找 习题解答9.5 画出对长度为10的有序表进行折半查找的判定树,并求其等概率时查找成功的平均查找长度。

解:求得的判定树如下: 57109643182ASL 成功=(1+2*2+4*3+3*4)/10 =2.99.9 已知如下所示长度为12的表(Jan,Feb,Mar,Apr,May,June,July,Aug,Sep,Oct,Nov,Dec )(1)试按表中元素的顺序依次插入一查初始为空的二叉排序树,画出插入完成之后的二叉排序树,并求其在等概率的情况下查找成功的平均查找长度。

(2)若对表中元素先进行排序构成有序表,求在等概率的情况下对此有序表进行折半查找时查找成功的平均查找长度。

解:(1)求得的二叉排序树如下图所示:JanFeb MarApr Aug Dec June July MaySeptOctNov在等概率情况下查找成功的平均查找长度为:ASL 成功=(1+2*2+3*3+4*3+5*2+6*1)/12=42/12=3.5(2)分析:对表中元素进行排序后,其实就变成了对长度为12的有序表进行折半查找了,那么在等概率的情况下的平均查找长度只要根据折半查找的判定树就很容易求出。

长度为12的有序表进行折半查找的判定树如下图所示:681211754193210所以可求出:ASL 成功=(1+2*2+4*3+5*4)/12=37/129.19 选取哈希函数H(k)=(3k) MOD 11。

用开放定址法处理冲突,di=i((7k)MOD 10+1)(i=1,2,3,…)。

试在0~10的散列地址空间中对关键字序列(22,41,53,46,30,13,01,67)造哈希表,并求等概率情况下查找成功时的平均查找长度。

解:因为H(22)=0;H(41)=2;H(53)=5;H(46)=6;H(30)=2;H 1(30)=3;H(13)=6;H 1(13)=8;H(01)=3;H 1(01)=0;H 2(01)=8;H 3(01)=5;H 4(01)=2;H 5(01)=10H(67)=3;H 1(67)=2;H 2(67)=1所以:构造的哈希表如下图所示:并求得等概率情况下查找成功的平均查找长度为:ASL 成功=(1*4+2*2+3+6)/8=17/89.21 在地址空间为0~16的散列区中,对以下关键字序列构造两哈希表: (Jan,Feb,Mar,Apr,May,June,July,Aug,Sep,Oct,Nov,Dec )(1)用线性探测开放定址法处理冲突;(2)用链地址法处理。

数据结构第九章 排序题库(40道)

数据结构第九章 排序题库(40道)

数据结构第九章排序1、内排序方法中,从未排序序列中依次取出元素与已排序序列中的元素进行比较,将其放入已排序序列的正确位置上的方法,称为( )。

——[单选题]A 希尔排序B 冒泡排序C 直接插入排序D 简单选择排序正确答案:C2、对有n个记录的表进行直接插入排序,在最坏情况下需进行( )次关键字比较。

——[单选题]A n-1B n+1C n/2D n(n-1)/2正确答案:D3、在下列算法中,( )算法可能出现下列情况:在最后一趟开始之前,所有的元素都不在其最终的位置上。

——[单选题]A 堆排序B 冒泡排序C 直接插入排序D 快速排序正确答案:C4、对数据序列{15,9,7,8,20,-1,4}进行排序,进行一趟后数据的排序变为{9,15,7,8,20,-1,4},则采用的是( )算法。

——[单选题]A 简单选择排序B 冒泡排序C 直接插入排序D 堆排序正确答案:C5、数据序列{5,4,15,10,3,1,9,6,2}是某排序方法第一趟后的结果,该排序算法可能是( )。

——[单选题]A 冒泡排序B 二路归并排序C 堆排序D 简单选择排序正确答案:B6、从未排序序列中挑选元素,并将其依次插入已排序序列的一端的方法,称为( )。

——[单选题]A 希尔排序B 归并排序C 直接插入排序D 简单选择排序正确答案:D7、在以下排序方法中,关键字比较的次数与元素的初始排列次序无关的是( )。

——[单选题]A 希尔排序B 冒泡排序C 插入排序D 简单选择排序正确答案:D8、对n个不同的关键字进行递增冒泡排序,在下列哪种情况下比较的次数最多( )。

——[单选题]A 元素无序B 元素递增有序C 元素递减有序D 都一样正确答案:C9、对数据序列(8,9,10,4,5,6,20,1,2)进行递增排序,采用每趟冒出一个最小元素的冒泡排序算法,需要进行的趟数至少是( )。

——[单选题]A 3B 4C 5D 8正确答案:C10、为实现快速排序法,待排序序列最好采用的存储方式是( )。

数据结构第九章--查找-习题及答案

数据结构第九章--查找-习题及答案

第九章查找一、选择题1.若查找每个记录的概率均等,则在具有n个记录的连续顺序文件中采用顺序查找法查找一个记录,其平均查找长度ASL为( )。

A. (n-1)/2 B. n/2 C. (n+1)/2 D. n2. 下面关于二分查找的叙述正确的是 ( )A. 表必须有序,表可以顺序方式存储,也可以链表方式存储 C. 表必须有序,而且只能从小到大排列B. 表必须有序且表中数据必须是整型,实型或字符型 D. 表必须有序,且表只能以顺序方式存储3. 用二分(对半)查找表的元素的速度比用顺序法( )A.必然快 B. 必然慢 C. 相等 D. 不能确定4. 具有12个关键字的有序表,折半查找的平均查找长度()A. 3.1B. 4C. 2.5D. 55.当采用分块查找时,数据的组织方式为 ( )A.数据分成若干块,每块内数据有序B.数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块C. 数据分成若干块,每块内数据有序,每块内最大(或最小)的数据组成索引块D. 数据分成若干块,每块(除最后一块外)中数据个数需相同6. 二叉查找树的查找效率与二叉树的( (1))有关, 在 ((2))时其查找效率最低(1): A. 高度 B. 结点的多少 C. 树型 D. 结点的位置(2): A. 结点太多 B. 完全二叉树 C. 呈单枝树 D. 结点太复杂。

7. 对大小均为n的有序表和无序表分别进行顺序查找,在等概率查找的情况下,对于查找失败,它们的平均查找长度是((1)) ,对于查找成功,他们的平均查找长度是((2))供选择的答案:A. 相同的B.不同的9.分别以下列序列构造二叉排序树,与用其它三个序列所构造的结果不同的是( ) A.(100,80, 90, 60, 120,110,130) B.(100,120,110,130,80, 60, 90)C.(100,60, 80, 90, 120,110,130)D. (100,80, 60, 90, 120,130,110)10. 在平衡二叉树中插入一个结点后造成了不平衡,设最低的不平衡结点为A,并已知A的左孩子的平衡因子为0右孩子的平衡因子为1,则应作( ) 型调整以使其平衡。

数据结构第9章 查找习题

数据结构第9章  查找习题

第9章查找一、单项选择题1.顺序查找法适合于存储结构为______的线性表。

A.哈希存储B.顺序存储或链式存储C.压缩存储D.索引存储2.对线性表进行二分查找时,要求线性表必须______。

A.以顺序方式存储B.以链式方式存储C.以顺序方式存储,且结点按关键字有序排序D.以链式方式存储,且结点按关键字有序排序3.如果要求一个线性表既能较快地查找,又能适应动态变化的要求,则可采用______方法。

A.顺序查找B.二分查找C.分块查找D.以上都不对4.在含有27个结点的二叉树排序树上,查找关键字为35的结点,则依次比较的关键字有可能是______。

A.28,36,18,46,35 B.18,36,28,46,35C.46,28,18,36,35 D.46,36,18,28,355.在一棵平衡二叉树中,每个结点的平衡因子的取值范围是______。

A.-1~1 B.-2~2C.1~2 D.0~16.如图9-1所示的4棵二叉树A、B、C和D______是平衡二叉树。

A B.C D.图9-17.一棵深度为K的平衡二叉树,其每个非叶子结点的平衡因子均为0,则该树共有______个结点。

A.2k-1-1 B.2k-1C.2k-1+1 D.2k-18.查找效率最高的二叉树排序树是______。

A.所有结点的左子树都为空的二叉排序树B.所有结点的右子树都为空的二叉排序树C.平衡二叉树D.没有左子树的二叉排序树二、填空题1.长度为225的表,采用分块查找法,每块的最佳长度是_________________。

2.按13,24,37,90,53的次序形成平衡二叉树,则该平衡二叉树的高度是____________,其根为___________,左子树中的数据是____________,右子树中的数据是_____________。

三、判断题1.顺序查找法适用于存储结构为顺序或链式存储的线性表。

2.顺序查找法只能在顺序存储结构上进行。

数据结构第九章查找练习及答案

数据结构第九章查找练习及答案

数据结构第九章查找练习及答案一、选择题1、对线性表进行二分查找时,要求线性表必须()A、以顺序方式存储B、以链表方式存储C、以顺序方式存储,且结点按关键字有序排列D、以链表方式存储,且结点按关键字有序排列2、采用顺序查找方法查找长度为n的线性表时,每个元素的平均查找长度为()A、nB、n/2C、(n+1)/2D、(n-1)/23、采用二分查找方法查找长度为n的线性表时,每个元素的平均查找长度为()A、n2B、nlog2nC、nD、log2n4、二分查找和二叉排序树的时间性能()A、相同B、不相同C、有时相同D、有时不相同5、有一个有序表为{1,3,9,12,32,41,45,62,75,77,82,95,100},当二分查找值为82的结点时,()次比较后查找成功。

A、1B、2C、4D、86、哈希表长m=14,哈希表函数H(key)=key%11,表中已有4个结点:ADDR(15)=4,ADDR(38)=5;ADDR(61)=6;ADDR(84)=7;其余地址为空,如果用二次探测再散列处理冲突,关键字为49的结点的地址是()A、8B、3C、5D、97、一个长度为12的有序表,按二分查找法对该表进行查找,在表内每个元素等概率情况下查找成功所需的平均比较次数()A、35/12B、37/12C、39/12D、43/128、用分块查找时,若线性表中共有625个元素,查找每个元素的概率相同,假设采用顺序查找来确定结点所在的块时,每块应分()结点最佳。

A、10B、25C、6D、6259、如果要求一个线性表既能较快的查找,又能适应动态变化的要求,可以采用()查找方法。

A、分块B、顺序C、二分D、散列10、有100个元素,用折半查找法进行查找时,最大比较次数是()A、25B、50C、10D、711、有100个元素,用折半查找法进行查找时,最小比较次数是()A、7B、4C、2D、112、散列函数有一个共同性质,即函数值应当以()取其值域的每个值。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
I
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
K
M
13.将关键字序列{7,8,30,11,18,9,14}散列存储到散列表中。散列表的存储空间是一个下标从0开始的一维数组。散列函数是:H(key)=(key*3)MOD T,处理冲突采用线性探测再散列法,要求装填因子为0.7,问题:
(1)请画出构造的散列表。
11.已知待散列的线性表为(36,15,40,63,22),散列用的一维地址空间为【0..6】,假定选定的散列函数是H(K)=K mod7,若发生冲突采用线性探查法处理,要求:
(1)计算出每一个元素的散列地址并在下图中填写出散列表。
0 1 2 3 4 5 6
(2)求出在查找每一个元素的概率相等情况下的平均查找长度。
{if(_______){
intmid=(low+high)/2;
If(_________)return mid;//查找成功,返回元素的下标
else if (K<A[mid].key)
returnBinsch(A,low,mid-1,,K);//在左子表上继续查找
else return______;//在右子表上继续查找
2.采用散列(Hash)技术进行查找,需要解决的两个问题是()和()。
3.在各种查找方法中,平均查找长度与结点个数n无关的是()。
4.对于长度为225的表,采用分块查找,每块的最佳长度是()。对哈希表查找,若用链表处理冲突,则平均查找长度是()。
5.在分块查找中,对256个元素组成的线性表分成()块最好,每块最佳长度是()。若每块的长度是8,则平均查找长度是()。
7.若结点的存储地址与其关键字之间存在某种映射关系,则称这种存储结构为()。
A.顺序存储结构 B.链式存储结构 C.索引存储结构 D.散列存储结构
8.具有5层结点的平衡二叉树至少有()个结点。
A.12 B.11 C.10 D.9
9.既希望较快的查找又便于线性表动态变化的查找方法是()。
A.顺序查找 B.折半查找 C.索引顺序查找 D.哈希法查找
一.选择题
1.对线性表进行二分查找时,要求线性表必须()。
A.以顺序方式存储 B.以顺序方式存储,且结点按关键字值有序排列
C.以链接方式存储 D.以连接方式存储,且结点按关键字值有序排列
2.用二分查找法查找具有n个结点的线性表时,查找每个元素的平均比较次数是()。
A.O( )B.O(n* ) C.O(n) D.O( )
A.1 B.2 C.3 D.4
12.假定有k个关键字互为同义词,若用线性探测法把这k个关键字存入散列表中,至少要进行()次探测。
A.k-1B.kC.k+1D.k(k+1)/2
13.散列函数有一个共同的性质,即函数值应当以()取其值域的每个值。
A.同等概率 B.最小概率 C.最大概率 D.平均概率
14.散列表的地址区间为0~17,散列函数为H(k)=K mod 17。采用线性探测法处理冲突,并将关键字序列 26,25,72,38,8,18,59依次存储到散列表中。
3.利用逐个插入结点的方法建立序列(50,72,43,85,75,20,35,45,65,30)对应的二叉树排序以后,查找元素35时,需要进行()次元素比较。
A.4 B.5 C.7 D.10
4.设哈希表的长度为m=14,哈希函数H(key)=key MOD 11,表中已有4个结点,其地址分别是:addr(15)=4;adபைடு நூலகம்r(38)=5;addr(61)=6;addr(84)=7;其余地址空。如果采用二次探测再散列处理冲突,则关键字49的结点的地址是()。
(1)元素59存放在散列表中的地址是()。
A.8 B.9 C.10 D.11
(2)存放元素59需要搜索的次数是()。
A.2 B.3 C.4 D.5
15.下面关于B-和B+树的叙述中,不正确的是()。
A.B-树和B+树都是平衡的多叉树
B.B-树和B+树都可用于文件的索引结构
C. B-树和B+树都能有效地支持顺序检索
7.构造以{4,5,7,2,1,3,6}为关键字的平衡二叉树,并注明用了何种旋转(写出步骤)。
8.设有3阶B一树(如下图所示),画出依次插入18,33,97后的B一树。
9.在上题的B一树上(如上图所示),分别画出删除66,16,43后的B一树(从上图出发)。
10.设散列表的地址范围是【0..9】,散列函数为H(key)=( +2)MOD9,并采用链表处理冲突,请画出元素7、4、5、3、6、2、8、9依次插入散列表的存储结构。
17.写出从哈希表中删除关键字为K的一个记录的算法,设哈希函数为H,解决冲突的方法为链地址法。
18.设二叉排序树中结点的结构由下述3个域构造:数据域data,左孩子结点地址left,右孩子结点地址right。设data域为正整数,该二叉树的根结点地址为T。现给出一个正整数x。请编写非递归程序,实现将data域的值小于等于x的结点全部删除掉。
(1)线性探测再散列 (2)链地址法
15.编写在以BT为树根指针的二叉排序树上进行查找值为Key的结点的非递归算法。
BiTreesearch(BiTreeBT,keytypeKey)
16.已知长度为11的表(xal,wan,wil,zol,yo,xul,yum,wen,wim,zi,yon),按表中元素顺序依次插入一棵初始为空的平衡二叉树,画出插入完成后的平衡二叉树,并求其在等概率的情况下查找成功的平均查找长度。
10.在平衡二叉树中插入一个结点后造成了不平衡,设最低的不平衡结点为A,并已知A的左孩子的平衡因子为0,右孩子的平衡因子为1,则应作()型调整以使其平衡。
A.LL B.LR C.RLD.RR
11.设有一组记录的关键字为{19,14,23,1,68,20,84,27,55,11,10,79},用链地址法构造散列表,散列函数为H(key)=key MOD 13,散列地址为1的链中有()个记录。
}
else______;//查找失败,返回-1
}
三.计算机与算法设计题
1.画出长度为10的有序线性表进行折半查找的判定树,并求其在等概率时查找成功的平均查找长度。
2.计算下图所示二叉树在等概率条件下,查找成功和失败时的平均查找长度。
=( ), =( )
3.用序列(46,,8,45,39,70,58,101,10,66,34)建立一棵二叉排序树,画出此树,并求在等概率情况下查找成功时的平均查找长度。
4.给定的一组关键字K={4,5,2,3,6,1},试按二叉排序树生成规则画出这课二叉排列树,并说明用这组关键字以不同的次序输入后建立起来的二叉排序树的形态是否相同?当以中序遍历这些二叉排序树时,其遍历结果是否相同?为什么?
5.设有二叉排序树如上图所示,画出依次插入8,3后的情形。
6.设上题(5题插入前的)所示的二叉排序树,画出依次删除5,6后的情形。
21.在一棵含有n个关键字的m阶B-树中进行查找,至多读盘()次。
A. B.1+ C.1+ D. 1+
二.填空题
1.已知一个有序表为{1,8,12,25,29,32,40,62,98},当二分查找值为29和98的元素时,分别需要()次和()次比较才能查找成功;若采用顺序查找时,分别需要()次和()次比较才能查找成功。
12.有字集合K={15,22,50,13,20,36,28,48,31,41,18},散列表地址空间为HT【0..15】,散列函数H(K)=K MOD 13,采用二次探测再散列的开放地址法解决冲突,试将K值填入HT中,并把查找每个关键字所需的比较次数m填入下表中,然后计算出查找成功时的平均查找长度。
6.在n个记录的有序顺序表中进行折半查找,最大比较次数是()。
7.假设有K个关键字互为同义词,若用线性探测法把这K个关键字存入散列表中,至少需要进行()次探测。
8.设有一个长度为10的已排好序的表,用二分查找法进行查找,若查找不成功,至少与关键字比较()次。
9.高度为8的平衡二叉树的结点输至少有()个。
10.动态查找表和静态查找表的重要区别在于前者包含()和()运算,而后者不包含这两种运算。
11.查找法基本上分成()查找,()查找,()查找3类。处理哈希表冲突的方法有(),(),(),()4种。
12.以下是有序变的二分查找的递归算法,在画线处填入适当成分将算法补充完整。
IntBinsch(ElemTyeA[],intlow,inthigh,KeyTypeK)
A.8 B.3 C.5 D.9
5.一颗深度为k的平衡二叉树,其每个非终端结点的平衡因子均为0,则该平衡二叉树共有()个结点。
A. -1 B. 1 C. -1 D. . +1
6.有一个长度为12的有序表,按二分查找法对表进行查找,在表内各元素查找概率相等的情况下,查找成功所需的平均比较次数为()。
A.35/12 B.37/12 C.39/12 D.43/12
(2)分别计算在等概率情况下,查找成功和查找不成功的平均查找长度。
14.设哈希函数H(k)=3K mod 11,散列地址空间为0—10,对关键字序列(32,13,49,24,38,21,4,12)按下述两种解决冲突的方法构造哈希表并分别求出等概率下查找成功时和失败时的平均查找长度ASLsucc和ASLunsucc。
B.数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块
C.数据分成若干块,每块内数据有序,每块内最大(或最小)的组成索引块
D.数据分成若干块,每块(除最后一块外)中数据个数需相同
18.已知一个长度为16的顺序表L,其元素按关键字有序排列,若采用折半法查找一个不存在的元素,则比较的次数最多是()。
相关文档
最新文档