查找算法练习题

1、在对有二十个数据有序表作二分查找时有___________个结点的查找长度是4.

2、用折半查找法的查找速度比用顺序查找法的查找速度_________.

     A  必然慢  B必然快    C速度相等     D   快慢不定

3、写出从循环单链表中查找出最大值的算法.

4、写出从循环单链表中查找出最小值的算法 .

5、适合折半查找的表的存贮方式及元素排列要求为(     )

      A、  链式存贮 元素无序      B 、 链式存贮  元素有序

      C 、 顺序存贮 元素无序      D 、 顺序存贮  元素有序

6、写出在有序表A上进行递归形式的折半查找的算法,其中给定值K为待查的关键字,若查找成功则返回该元素的下标,否则返回零值.

7、对一个链式存贮结构的线性表进行顺序查找算法.

8、顺序查找法适用于存储结构为(    )的线性表.

     A、 散列存储   B 、压缩存储  C、顺序或链式存储  D、索引存储

9、编写顺序查找算法,并求在等概率情况下的平均查找长度ASL.

10、在地址空间为0-16的散列区中,对以下关键字序列构造两个哈希表:(Jan,Feb, Mar, Apr, May, June, July, Aug, Sep, Oct, Nov, Dec)

   (1)用线性探测开放定址法处理冲突

   (2)用链地址法处理

并分别求这两个哈希表要在等概率情况下查找成功和不成功时的平均查找长度.

设哈希函数为H(x)=i/2,其中i为关键字中第一个字母在字母表中的序号.

11、在数据的存放无规律而言的线性表中进行检索的最佳方法是      

12、线性有序表(a1,a2,a3,…,a256)是从小到大排列的,对一个给定的值k,用二分法检索表中与k相等的元素,在查找不成功的情况下,最多需要检索      次。设有100个结点,用二分法查找时,最大比较次数是       

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

14、折半查找有序表(4,6,12,20,28,38,50,70,88,100),若查找表中元素20,它将依次与表中元素       比较大小。

15、在各种查找方法中,平均查找长度与结点个数n无关的查找方法是        

16、散列法存储的基本思想是由        决定数据的存储地址。

17、有一个表长为m的散列表,初始状态为空,现将n(n<m)个不同的关键码插入到散列表中,解决冲突的方法是用线性探测法。如果这n个关键码的散列地址都相同,则探测的总次数是         

18、在表长为n的链表中进行线性查找,它的平均查找长度为(   )

19、折半查找有序表(4,6,10,12,20,30,50,70,88,100)。若查找表中元素58,则它将依次与表中         比较大小,查找结果是失败。

A、20,70,30,50     B、30,88,70,50     C、20,50    D、30,88,50

20、对22个记录的有序表作折半查找,当查找失败时,至少需要比较       次关键字。

21、链表适用(      )查找

A、顺序      B、二分法     C、顺序,也能二分法     D、随机

22、折半搜索与二叉搜索树的时间性能(    )

   A、相同    B、完全不同   C.、有时不相同   D、数量级都是O(log2n)

23、从供选择的答案中,选出应填入下面叙述  ?  内的最确切的解答,把相应编号写在答卷的对应栏内。

要进行线性查找,则线性表 A ;要进行二分查找,则线性表 B  ;要进行散列查找,则线性表 C  

某顺序存储的表格,其中有90000个元素,已按关键项的值的上升顺序排列。现假定对各个元素进行查找的概率是相同的,并且各个元素的关键项的值皆不相同。当用顺序查找法查找时,平均比较次数约为 D  ,最大比较次数为 E  

供选择的答案:

A~C: ①必须以顺序方式存储   ②必须以链表方式存储     ③ 必须以散列方式存储

     ④ 既可以以顺序方式,也可以以链表方式存储

     ⑤ 必须以顺序方式存储且数据元素已按值递增或递减的次序排好

     ⑥ 必须以链表方式存储且数据元素已按值递增或递减的次序排好

D,E:    ①25000      ②30000        ③45000         ④ 90000

24、从供选择的答案中,选出应填入下面叙述  ?  内的最确切的解答,把相应编号写在答卷的对应栏内。

数据结构反映了数据元素之间的结构关系。链表是一种  A  ,它对于数据元素的插入和删除  B  。通常查找线性表数据元素的方法有  C    D  两种方法,其中  C  是一种只适合于顺序存储结构但  E  的方法;而  D  是一种对顺序和链式存储结构均适用的方法。          

供选择的答案:

A:①顺序存储线性表 ②非顺序存储非线性表   ③顺序存储非线性表   ④非顺序存储线性表

B: ①不需要移动结点,不需改变结点指针     ②不需要移动结点,只需改变结点指针   ③只需移动结点,不需改变结点指针        ④既需移动结点,又需改变结点指针

C:①顺序查找   ②循环查找    ③条件查找    ④二分法查找

D:①顺序查找   ②随机查找    ③二分法查找   ④分块查找

E:①效率较低的线性查找          ②效率较低的非线性查找 

③效率较高的非线性查找     ④效率较高的线性查找

25、从供选择的答案中,选出应填入下面叙述  ?  内的最确切的解答,把相应编号写在答卷的对应栏内。

在二叉排序树中,每个结点的关键码值 A , B  一棵二叉排序,即可得到排序序列。同一个结点集合,可用不同的二叉排序树表示,人们把平均检索长度最短的二叉排序树称作最佳二叉排序,最佳二叉排序树在结构上的特点是 C  

供选择的答案

A:①比左子树所有结点的关键码值大,比右子树所有结点的关键码值小 

   ②比左子树所有结点的关键码值小,比右子树所有结点的关键码值大

   ③比左右子树的所有结点的关键码值都大

 ④与左子树所有结点的关键码值和右子树所有结点的关键码值无必然的大小关系

B:  ①前序遍历   ②中序(对称)遍历     ③后序遍历      ④ 层次遍历

C:①除最下二层可以不满外,其余都是充满的         ②除最下一层可以不满外,其余都是充满的

   ③每个结点的左右子树的高度之差的绝对值不大于1  ④ 最下层的叶子必须在最左边

26、从供选择的答案中,选出应填入下面叙述  ?  内的最确切的解答,把相应编号写在答卷的对应栏内。

散列法存储的基本思想是根据 A   来决定  B  ,碰撞(冲突)指的是 C  ,处理碰撞的两类主要方法是   D   。

供选择的答案

A,B:  ①存储地址    ②元素的符号     ③ 元素个数   ④ 关键码值

          ⑤ 非码属性   ⑥平均检索长度   ⑦ 负载因子   ⑧散列表空间

C:  ①两个元素具有相同序号    ② 两个元素的关键码值不同,而非码属性相同

 ③不同关键码值对应到相同的存储地址   ④ 负载因子过大   ⑤数据元素过多

D:  ①线性探查法和双散列函数法      ② 建溢出区法和不建溢出区法

    ③除余法和折叠法                ④ 链地址法和开放定址法

27、对分(折半)查找适不适合链表结构的序列,为什么?用二分查找的查找速度必然比线性查找的速度快,这种说法对吗?

28、假定对有序表:(3,4,5,7,24,30,42,54,63,72,87,95)进行折半查找,试回答下列问题:

(1)  出描述折半查找过程的判定树;

(2)  查找元素54,需依次与哪些元素比较?

(3)  若查找元素90,需依次与哪些元素比较?

(4) 假定每个元素的查找概率相等,求查找成功时的平均查找长度。

29、用比较两个元素大小的方法在一个给定的序列中查找某个元素的时间复杂度下限是什么?如果要求时间复杂度更小,你采用什么方法?此方法的时间复杂度是多少? 

30、设哈希(Hash)表的地址范围为0~17,哈希函数为:H(K)=K MOD  16。

K为关键字,用线性探测法再散列法处理冲突,输入关键字序列:

       (10,24,32,17,31,30,46,47,40,63,49)

造出Hash表,试回答下列问题:

(1)  画出哈希表的示意图;

(2) 若查找关键字63,需要依次与哪些关键字进行比较?

(3) 若查找关键字60,需要依次与哪些关键字比较?

(4) 假定每个关键字的查找概率相等,求查找成功时的平均查找长度。

31、画出对长度为10的有序表进行折半查找的判定树,并求其等概率时查找成功的平均查找长度。

32、在一棵空的二叉查找树中依次插入关键字序列为12,7,17,11,16,2,13,9,21,4,请画出所得到的二叉查找树。

33、已知如下所示长度为12的表:

(Jan, Feb, Mar, Apr, May, June, July, Aug, Sep, Oct, Nov,Dec)

(1)按表中元素的顺序依次插入一棵初始为空的二叉排序树,画出插入完成之后的二叉排序树,并求其在等概率的情况下查找成功的平均查找长度。

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

(3)按表中元素顺序构造一棵平衡二叉排序树,并求其在等概率的情况下查找成功的平均查找长度。

34、选取散列函数H(key)=(3*key)%11,用线性探测法处理冲突,对下列关键码序列构造一个散列地址空间为0~10,表长为11的散列表,{22,41,53,08,46,30,01,31,66}。

35、已知11个元素的有序表为(05 13  19  21 37  56  64 75  80  88 92), 请写出折半查找的算法程序,查找关键字为key的数据元素。

36、试写一个判别给定二叉树是否为二叉排序树的算法,设此二叉树以二叉链表作存储结构。且树中结点的关键字均不同。

37、已知一个含有1000个记录的表,关键字为中国人姓氏的拼音,请给出此表的一个哈希表设计方案,要求它在等概率情况下查找成功的平均查找长度不超过3。

38、已知某哈希表的装载因子小于1,哈希函数H(key)为关键字(标识符)的第一个字母在字母表中的序号,处理冲突的方法为线性探测开放定址法。试编写一个按第一个字母的顺序输出哈希表中所有关键字的算法。

39、什么是二叉排序树,按如下关键字的插入次序生成一棵二叉排序树,试画出此二叉排序树   25,48,36,16,45,20,18,72

40、编写从二叉排序树上插入一个关键字的算法.

41、二叉排序树的生成,是从空的二叉排树开始,每输入一个结点数据,就建立一个新结点插入到当前已生成的二叉排树中,编写生成二叉排序树算法.

42、编写在树根指针为BT的二叉排序树上进行查找的算法.要求,若查找成功,则将变参T置0,否则返回零值.

43、散列的基本思想是什么?举出五种常用的散列函数的构造方法.

44、什么是冲突?处理冲突的方法是什么?

45、试编写利用折半查找确定所在块的分块查找算法,并讨论在块中进行顺序查找时使用”监视哨”有优缺点,以及必要时如何在分块查找的算法中实现设置”监视哨”的技巧.

46、若对大小均为N的有序顺序表和无序表分别进行顺序查找,试在下列三种情况下讨论两者在等概率时的平均查找长度是否相同?

 (1)查找不成功,即表中没有关键字等于给定值K的记录.

 (2)查找成功,且表中只有一个关键字等于给定值K的记录.

 (3)查找成功,且表中有若干个关键字等于给定值K的记录,一次查找要求找出所有的记录.此时的平均查找长度应考虑找到所有记录时所用的比较次数.

47、在如下一维数组A中折半查找36和85时,所需比较的次数分别为__________和__________.

  25,36,40,45,48,56,60,68,72,85

48、折半查找的时间复杂性是__________.

49、写出在有序表A上进行非递归形式的折半查找的算法,其中给定值K为待查元素的关键字,若查找成功则返回该元素的下标,否则返回零值.

    原文作者:查找算法
    原文地址: https://blog.csdn.net/chf_1/article/details/80586415
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞