【问题描述】
严蔚敏教授在《数据结构(C语言版 第2版)》中的顺序查找一节中提到“当元素个数≥1000时,设置有监视哨的顺序查找算法,比未设监视哨的顺序查找算法,进行一次查找所需的平均时间几乎减少一半”。

【实验验证】
针对上述表述,我写了如下代码进行验证。但是发现,上述表述并不正确。因为实验验证的结果表明,有无设置监视哨,顺序查找算法所需的平均时间相当。分析原因,可能在于作者在写这本书的时候,计算机硬件的发展水平不高,而现在计算机硬件获得高速发展的原因。

【一点建议】
建议在改版时,将上述表述删掉,以适应新发展。

【算法代码】

#include<bits/stdc++.h>
using namespace std;const long long int maxn=200000000;
int a[maxn];
clock_t stp,enp; //start point, end pointint seqSearch(int *a,int n,int key) {for(int i=n; i>=1; i--) {if(a[i]==key) return i;}return 0;
}int sentrySearch(int *a,int n,int key) {a[0]=key;int i;for(i=n; a[i]!=key; i--){};return i;
}int main() {for(int i=0; i<maxn; i++) a[i]=i;stp=clock();cout<<seqSearch(a,maxn,123456789)<<endl;enp=clock();cout<<(double)(enp-stp)/CLOCKS_PER_SEC<<"s"<<endl;stp=clock();cout<<sentrySearch(a,maxn,123456789)<<endl;enp=clock();cout<<(double)(enp-stp)/CLOCKS_PER_SEC<<"s"<<endl;return 0;
}

设置了监视哨的顺序查找算法效率高?你确定吗?相关推荐

  1. c语言监视哨用法,C++ 实现带监视哨的顺序查找算法

    这篇文章主要介绍了C++ 实现带监视哨的顺序查找算法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下. 监视哨往往是程序里面的一个变量,如果是对数 ...

  2. 数据结构——线性表的查找:顺序查找、设置监视哨的顺序查找、折半查找

    算法7.1顺序查找 #include<iostream> using namespace std;typedef int KeyType; typedef int InfoType; #d ...

  3. c语言监视,C语言设置监视哨的顺序查找、折半查找算法的实现

    设置监视哨算法的实现也算是相当简单,和顺序查找的思路一样,但把查找数组a[]的第一个元素a[0]赋值为所要查找元素的值.下面是实现代码: int Search_Seq(int a[], int len ...

  4. C++ 实现带监视哨的顺序查找

    之前在牛客网上做习题发现的这个独特的顺序查询,第一次听到"监视哨"这个说法,就查了一下 具体实现就是将数组的第0位置空,在查找时将要查找的key插入作为监视哨 这样的好处是不用每次 ...

  5. 设置监察哨的顺序查找

    思想    在表的一端设置一个称为"监视哨"的附加单元,存放要查找元素的关键字.从表的另一端开始查找如果在"监视哨"找到元素的关键字,返回查找失败信息,否则返回 ...

  6. 顺序查找算法C语言实现

    顺序查找算法 实现思想:静态查找表用顺序存储结构表示时,顺序查找的查找过程为:从表中的最后一个数据元素开始,逐个同记录的关键字做比较,如果匹配成功,则查找成功:反之,如果直到表中第一个关键字查找完也没 ...

  7. 用c语言实现顺序查找,顺序查找算法及C语言实现

    通过前面对静态查找表的介绍,静态查找表即为只做查找操作的查找表. 静态查找表既可以使用.虽然一个是本节以静态查找表的顺序存储结构为例做详细的介绍. 顺序查找的实现 静态查找表用顺序存储结构表示时,顺序 ...

  8. c语言顺序查找算法,c语言实现排序和查找所有算法

    c语言版排序查找完成,带详细解释,一下看到爽,能直接运行看效果. /* Note:Your choice is C IDE */ #include "stdio.h" #inclu ...

  9. python二分法查找算法_顺序查找算法和折半(二分法)查找算法,C语言查找算法详解...

    查找是指在大量的信息中寻找一个特定的信息.在计算机中,查找是非常重要的一个应用,比如"百度".查找算法的好坏直接影响查找的速度. 常用的查找算法主要有顺序查找和折半(二分法)查找: ...

最新文章

  1. 开始→运行→输入的命令集锦(转载)
  2. 51nod 1574 排列转换
  3. 配置 --- vscode自定义代码段Snippets
  4. linux解释名词shell环境,Linux 定时任务
  5. 深圳软件开发向前跳转会略过一些节点
  6. 深度学习——用神经网络解决非线性问题
  7. ppt设置外观样式_这个3000多页的PPT是如何在1小时内做好的?
  8. 移动Web—CSS为Retina屏幕替换更高质量的图片
  9. Markdown (小白可查看的)基本语法
  10. 装饰器,语法糖.有参装饰器 ,无参装饰器
  11. python语言中的缩进是什么意思_python编程中的缩进是什么意思
  12. python将txt文档中的内容按字母顺序进行排序,并存入txt中
  13. Illustrator 教程,如何在 Illustrator 中修改形状?
  14. 最新基于高德地图的android进阶开发(2)小试牛刀
  15. 2109-全国大学生电子设计竞赛-F-纸张数识别(内含arduino代码以及题解)
  16. wed标准的基础知识
  17. Android-系统服务-ClipboardManager
  18. Latex语法学习02:文本悬挂缩进
  19. Nvidia Deepstream极致细节:3. Deepstream Python RTSP视频输出显示
  20. 妇女节手抄报Word电子小报

热门文章

  1. linux服务-iptables( snat 和dnat )
  2. (转)用AGG实现高质量图形输出(一)
  3. Code jock 8.7 源代码编译
  4. instanceof有什么作用
  5. rand函数用法整理
  6. appium java模拟微信登录,python实战之结合Appium自动化操作微信
  7. 算法分析---寻找丑数
  8. OSChina 周二乱弹 —— 怎么制作妹子面
  9. 指针数组,数组指针,函数指针,指针函数,函数指针数组
  10. STM32驱动WK2168串口扩展芯片完整教程