2016 - 2024

感恩一路有你

顺序查找监视哨的作用 请问什么是监视哨或哨兵(Sentinel)?

浏览量:2243 时间:2021-03-13 01:51:05 作者:admin

请问什么是监视哨或哨兵(Sentinel)?

算法中引入的附加记录R[0]称为sentinel。哨兵有两个功能:

①在进入搜索(插入位置)循环之前,它保留一个R[i]的副本,这样R[i]的内容就不会因为记录向后移动而丢失;

②它的主要功能是监视下标变量J在搜索循环中是否越界。一旦超出界限(即J=0),因为R[0]。与自身相比,循环判定条件是不成立的,这使得搜索循环结束,从而避免了每次在循环中检测J是否越界的需要(即省略循环判定条件J>=1)。注:实际上,为简化边界条件而引入的所有附加节点(元素)都可以称为sentinel。[例]单链表中的头节点实际上是一个哨兵。2哨兵的引入将测试和发现循环条件的时间减少了一半左右,因此对于记录量大的文件来说节省的时间是相当可观的。对于像排序这样经常使用的算法,我们应该尽量减少它的运行时间。因此,上述算法中的哨兵不能视为一项小技巧,而应深刻理解和掌握。

C语言,直接插入排序的算法中监视哨怎么理解呢,我知道它是为了避免数据后移时消失,我不是很理解,但是i?

sentinel的目的是避免检查指针J>0,其中s[0]不仅充当sentinel,还充当临时变量,从而避免在while循环中为交换赋值三次。如果你结合我的代码,你就会明白。Void import(int s[],int n){int i,J,temp for(i=2i0){temp=s[J]s[J]=s[J 1]s[J 1]=temp J--}

n个元素需要比较一次,但都不成功。最后,哨兵还需要比较一次,哪个比较成功,一共N次。示例:有五个元素:1、2、3、4、5。你要找的元素是8。那么8是哨兵。顺序如下:8、1、2、3、4、5。从5开始,你需要比较6次。比较是成功的。sentinel的下标是0,因此返回值是0。

顺序查找监视哨的作用 数据结构监视哨的作用 白河监视哨

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。