首页 > 试题广场 >

对于静态表的顺序查找法,若在表头设置监视哨,则正确的查找方式

[单选题]

对于静态表的顺序查找法,若在表头设置监视哨,则正确的查找方式为()。

  • 从第0个元素往后查找该数据元素
  • 从第1个元素往后查找该数据元素
  • 从第n个元素往开始前查找该数据元素
  • 与查找顺序无关

从第n个元素开始往前查找该数据元素?

编辑于 2018-08-17 09:01:59 回复(0)
监视哨就是用来判定是否查找成功
发表于 2019-01-11 16:51:44 回复(0)
常把第一个或最后一个元素作为哨兵
表头设置监视哨,就是将空出来的下标为0的这个元素的值设为Key,
这样我们就不用多次判断 i 是否越界,因为就算静态表中找不到,也会在0位置上配对成功,返回0!

n个元素都要比较一次,但都不成功,最后监视哨也要比较一次,比较成功,一共比较n+1次.
例子:有5个元素,分别是1,2,3,4,5.要找的元素是8.那么8就是监视哨,数列如下:
8,1,2,3,4,5.
从5开始向前查找,一共要比较6次,比较到监视哨成功,监视哨所在的下标是0,所以返回值为0.
发表于 2017-05-04 17:43:44 回复(2)

监视哨是最后需要比较的元素,减少了越界判断

发表于 2019-08-09 11:37:37 回复(0)
静态链表和动态链表是线性表链式存储结构的两种不同的表示方式,前者简称静态表,后者简称动态表。
静态链表是用类似于数组方法实现的,是顺序的存储结构,在物理地址上是连续的,而且需要预先分配地址空间大小
所以静态链表的初始长度一般是固定的,在做插入和删除操作时不需要移动元素,仅需修改指针。
所谓监视哨,就是将空出来的下标为0的这个元素的值设为Key,监视哨的作用是使得我们不用多次判断i是否越界,因为就算静态表中找不到,也会在0位置上配对成功,返回0。
发表于 2020-04-08 23:47:53 回复(0)
注意,静态表就是静态链表,即底层用数组来实现的链表。
发表于 2018-03-08 09:25:56 回复(0)
1. 这道题应该加上第n个元素是最后一个元素吧?
2. 从最后一个元素往前查找。监视哨可以防止越界,可以不必每次查找时都检查是否到末尾了.

发表于 2019-05-25 15:30:54 回复(0)
大致思路是监视哨为最后比较的元素,那为了遍历元素,肯定是选一个开始节点然后逐渐向监视哨靠近,
发表于 2021-03-14 23:58:16 回复(0)
常规顺序查找算法每次都要进行索引是否越界进行判断,而添加监视哨就不用了,算是时间上的一个小优化。
发表于 2020-05-16 16:18:38 回复(0)
查找过程从表中的第一个(或最后一个)记录开始,逐个进行比较
发表于 2019-03-29 15:53:06 回复(0)
设置监视哨,存放在数组0位,1~n存放要比较的数
发表于 2018-08-03 08:31:30 回复(0)