博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
直接插入排序的哨兵的作用
阅读量:6213 次
发布时间:2019-06-21

本文共 382 字,大约阅读时间需要 1 分钟。

法中引进的附加记录R[0]称监视哨或哨兵(Sentinel)。

哨兵有两个作用:
① 进人查找(插入位置)循环之前,它保存了R[i]的副本,使不致于因记录后移而丢失R[i]的内容;
② 它的主要作用是:在查找循环中监视下标变量j是否越界一旦越界(即j=0),因为R[0].可以和自己比较,循环判定条件不成立使得查找循环结束,从而避免了在该循环内的每一次均要检测j是否越界(即省略了循环判定条件j>=1)
注意:
① 实际上,一切为简化边界条件而引入的附加结点(元素)均可称为哨兵。
【例】单链表中的头结点实际上是一个哨兵
② 引入哨兵后使得测试查找循环条件的时间大约减少了一半,所以对于记录数较大的文件节约的时间就相当可观。对于类似于排序这样使用频率非常高的算法,要尽可能地减少其运行时间。所以不能把上述算法中的哨兵视为雕虫小技,而应该深刻理解并掌握这种技巧。

转载地址:http://sebja.baihongyu.com/

你可能感兴趣的文章
Cage与Spring的整合
查看>>
K8S二进制部署node节点
查看>>
Cisco路由器AAA配置
查看>>
51CTO博客2.0造星计划获奖图书收到拉!
查看>>
Server 2008 R2 AD RMS完整部署:用户创建篇
查看>>
阿里云开发者大赛记事
查看>>
传统创业者给互联网创业者上了一课
查看>>
详解SEO优化中所使用的新浪博客站群
查看>>
为未来学习
查看>>
在meshLab的3D场景中绘制2D透明信息面板
查看>>
sizeof(空类或空结构体)
查看>>
ALTER INDEX Rebuild Reorganize 索引 重建 重组 碎片率
查看>>
codeblocks 树的遍历 递归和非递归
查看>>
JQUERY系列之一:事件绑定
查看>>
使用LINQPad调试Linq和Entity Framework
查看>>
【黑金视频连载】FPGA NIOSII视频教程(08)--RTC实验
查看>>
《Windows核心编程》学习笔记(6)– 线程的创建、与进程的关系、伪句柄转换...
查看>>
C#之重载与覆盖
查看>>
企业知识管理专家:KMaster知识管理平台简介
查看>>
64位驱动开发及驱动签名
查看>>