设置了监视哨的顺序查找算法效率高?你确定吗?
【问题描述】
严蔚敏教授在《数据结构(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;
}
设置了监视哨的顺序查找算法效率高?你确定吗?相关推荐
- c语言监视哨用法,C++ 实现带监视哨的顺序查找算法
这篇文章主要介绍了C++ 实现带监视哨的顺序查找算法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下. 监视哨往往是程序里面的一个变量,如果是对数 ...
- 数据结构——线性表的查找:顺序查找、设置监视哨的顺序查找、折半查找
算法7.1顺序查找 #include<iostream> using namespace std;typedef int KeyType; typedef int InfoType; #d ...
- c语言监视,C语言设置监视哨的顺序查找、折半查找算法的实现
设置监视哨算法的实现也算是相当简单,和顺序查找的思路一样,但把查找数组a[]的第一个元素a[0]赋值为所要查找元素的值.下面是实现代码: int Search_Seq(int a[], int len ...
- C++ 实现带监视哨的顺序查找
之前在牛客网上做习题发现的这个独特的顺序查询,第一次听到"监视哨"这个说法,就查了一下 具体实现就是将数组的第0位置空,在查找时将要查找的key插入作为监视哨 这样的好处是不用每次 ...
- 设置监察哨的顺序查找
思想 在表的一端设置一个称为"监视哨"的附加单元,存放要查找元素的关键字.从表的另一端开始查找如果在"监视哨"找到元素的关键字,返回查找失败信息,否则返回 ...
- 顺序查找算法C语言实现
顺序查找算法 实现思想:静态查找表用顺序存储结构表示时,顺序查找的查找过程为:从表中的最后一个数据元素开始,逐个同记录的关键字做比较,如果匹配成功,则查找成功:反之,如果直到表中第一个关键字查找完也没 ...
- 用c语言实现顺序查找,顺序查找算法及C语言实现
通过前面对静态查找表的介绍,静态查找表即为只做查找操作的查找表. 静态查找表既可以使用.虽然一个是本节以静态查找表的顺序存储结构为例做详细的介绍. 顺序查找的实现 静态查找表用顺序存储结构表示时,顺序 ...
- c语言顺序查找算法,c语言实现排序和查找所有算法
c语言版排序查找完成,带详细解释,一下看到爽,能直接运行看效果. /* Note:Your choice is C IDE */ #include "stdio.h" #inclu ...
- python二分法查找算法_顺序查找算法和折半(二分法)查找算法,C语言查找算法详解...
查找是指在大量的信息中寻找一个特定的信息.在计算机中,查找是非常重要的一个应用,比如"百度".查找算法的好坏直接影响查找的速度. 常用的查找算法主要有顺序查找和折半(二分法)查找: ...
最新文章
- 开始→运行→输入的命令集锦(转载)
- 51nod 1574 排列转换
- 配置 --- vscode自定义代码段Snippets
- linux解释名词shell环境,Linux 定时任务
- 深圳软件开发向前跳转会略过一些节点
- 深度学习——用神经网络解决非线性问题
- ppt设置外观样式_这个3000多页的PPT是如何在1小时内做好的?
- 移动Web—CSS为Retina屏幕替换更高质量的图片
- Markdown (小白可查看的)基本语法
- 装饰器,语法糖.有参装饰器 ,无参装饰器
- python语言中的缩进是什么意思_python编程中的缩进是什么意思
- python将txt文档中的内容按字母顺序进行排序,并存入txt中
- Illustrator 教程,如何在 Illustrator 中修改形状?
- 最新基于高德地图的android进阶开发(2)小试牛刀
- 2109-全国大学生电子设计竞赛-F-纸张数识别(内含arduino代码以及题解)
- wed标准的基础知识
- Android-系统服务-ClipboardManager
- Latex语法学习02:文本悬挂缩进
- Nvidia Deepstream极致细节:3. Deepstream Python RTSP视频输出显示
- 妇女节手抄报Word电子小报