public class seqSearch {
/**
* @param args
*/
/*
顺序查找又称线性查找;
基本思想:从查找表的一端开始,向另一端逐个按给定值K与关键字进行比较,若找到,查找成功;
并给出记录在表中的位置;若整个表检测完,仍未找到与K值相同的关键字,则查找失败;
优点:对表中数据的存储没有要求,对于链表,只能进行顺序查找;
缺点:当n值很大时,平均查找长度较大,效率低;
*/
//无监视哨的情况,查询成功返回该对象的下标序号,失败时返回-1。
int SeqSearch(int r[],int n,int k)
{
int i=0;
while(i<n&&r[i]!=k)
i++;
if(i<n)
return i;
else
return -1;
}
//有监视哨的情况,多定义一个单元存放待查找的元素,这样每次循环只需要进行元素的比较,不需要比较下标是否越界。
//查询成功返回该对象的下标序号,失败时返回-1。
int SeqSearch2(int r[],int n,int k)
{
int i=0;
r[n-1]=k;
while(r[i]!=k)
i++;
if(i<n)
return i;
else
return -1;
}
public static void main(String[] args) {
seqSearch sq=new seqSearch();
int r[]={1,2,3,4,5};
System.out.println(sq.SeqSearch(r,5,3));
System.out.println(sq.SeqSearch2(r,5,3));
}
}
C:\java>java seqSearch
2
2
分享到:
相关推荐
本文将详细介绍 C++ 实现带监视哨的顺序查找算法的知识点,包括监视哨的概念、顺序查找算法的实现、监视哨在顺序查找算法中的应用等。 监视哨是一种特殊的变量,通常用于排序或查找算法中。其作用是作为一个哨兵,...
快速排序、冒泡排序、监视哨以及折半查找是计算机科学中非常重要的基础算法,对于理解和应用编程至关重要,特别是对于参与ACM(国际大学生程序设计竞赛)或其他算法竞赛的程序员来说,这些都是必须掌握的核心技能。...
在程序中,可能有单独的CPP文件实现了监视哨查找。 综合这些标签,我们可以推测这个压缩包包含的代码示例可能展示了如何在实际编程中使用这些数据结构和查找算法。在VS2008环境下,你可以分别运行每个CPP文件,了解...
在实验中,建议使用设置监视哨的方法来优化查找过程,即在列表末尾添加一个特殊的元素作为标记,这样可以避免在查找未找到时还需要额外判断是否已经遍历完整个列表。 其次,二分查找是一种适用于有序数组的高效查找...
值得一提的是设置监视哨这一思想,将a[0]设置成监视哨则可以避免每次比较元素后都需要判断下标是否越界这一问题,从而节省了时间。当然,a[0]中将不能在存放有效元素。 下面介绍一个以整型数组为例的查找实现:
顺序查找可以有监视哨和不含监视哨两种形式。监视哨是一种优化策略,即在列表末尾添加一个具有目标值的元素,以便在查找过程中快速终止。不过,对于非排序列表,即使使用监视哨,顺序查找的平均时间复杂度仍然为O(n)...
包含监视哨查找,折半查找,直接插入排序,希尔排序,冒泡排序,快速排序,选择排序。里面包含超大量的注释,包括对VC6的语法解释和算法的解释和理解。具体效果可以看 ...
cout* 7--带监视哨顺序查找(从右往左) *"; cout* 8--带监视哨顺序查找(从右往左) *"; cout* 9--冒泡排序 *"; cout* 10--快速排序 *"; cout* 11--简单选择排序 *"; cout* 12--堆排序 *"; cout* 13--归并...
监视哨法是一种用于简化顺序查找的技术,其主要思想是在数组的末尾添加一个哨兵节点,该节点的值设置为目标值,这样无论目标值是否存在于数组中,查找过程总会结束于哨兵节点。具体步骤如下: 1. 在数组末尾添加一...
实验B06主要关注的是数据结构中的静态表查找操作,包括顺序查找、二分查找和索引查找。这些查找算法是计算机科学中基础且重要的概念,尤其在数据处理和信息检索方面发挥着关键作用。 **顺序查找**是一种简单直观的...
接着,我们定义了包含有监视哨的顺序查找函数(Search_Seq),并在主函数中调用CreateSTable函数和Search_Seq函数,实现了顺序查找功能。 在实验中,我们使用C++语言编写了程序,输入查找表的表长和数据,然后输入...
除了顺序查找外,还有许多其他高效的查找算法,例如二分查找、哈希查找等,这些算法在特定条件下比顺序查找更加高效。二分查找要求查找表中的数据必须有序,其基本思想是在有序数组中不断将查找区间一分为二,从而...
分块查找、折半查找和顺序查找的平均查找长度各有特点;无序表不适合二分查找;在查找树中插入节点可能在任意节点下,不仅仅是叶节点;二叉排序树的前序遍历不一定得到升序序列。 8. **填空题**:顺序查找成功时,...
在给定的示例代码中,`SeqSearch1` 和 `SeqSearch2` 分别实现了设置监视哨和不设置监视哨的顺序查找。监视哨是指在序列末尾设置一个目标值,以避免在已知不存在目标值时仍然遍历整个序列。这种方法可以节省一些比较...
(1)根据输入的查找表的表长 n 与 n 个关键字值,建立顺序查找表,并在此查找表中用顺序查找方法查找给定关键值的记录,最后输出查找结果。 (2)根据输入的查找表的表长 n 与 n 个按升序排列的关键字值,建立有序...
数据结构表的,顺序查找,监视哨查找法,折半查找法。三种查找的方法。
这里我们重点讨论两种基本的查找方法:顺序查找和二分查找。 顺序查找,也称为线性查找,是最基础的查找方法。在顺序查找过程中,从数据结构的起始位置开始,逐个比较关键字,直到找到目标值或者遍历完整个列表。...
为了提高查找效率,可以采用带监视哨的顺序查找,即在表的开始或结束位置设置一个具有已知值的哨兵,这样可以在查找过程中减少一些不必要的比较。带监视哨的顺序查找的平均查找时间会显著减少。 有序表上的查找,...