zoukankan      html  css  js  c++  java
  • java算法:顺序查找(有监视哨和无监视哨)

    package Ceshi;
    
    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));
    
    	}
    
    }
    

    文献来源:

    UNDONER(小杰博客) http://blog.csdn.net/undoner

    LSOFT.CN(琅软中国) http://www.lsoft.cn


     

  • 相关阅读:
    SSDT
    SSDT
    Rootkit之SSDT hook(通过CR0)
    直接用编译器按ctrl+F5运行和双击运行结果不一样
    HDU 1754 I Hate It
    HDU 1166 敌兵布阵
    网易2017内推笔试题 合唱团
    CodeForces 1151F Sonya and Informatics
    CodeForces 1151E Number of Components
    洛谷 P1962 斐波那契数列
  • 原文地址:https://www.cnblogs.com/wuyida/p/6301098.html
Copyright © 2011-2022 走看看