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


     

  • 相关阅读:
    PR工具栏(选择、轨道选择、剃刀工具)
    PPT动画与多媒体制作
    小微企业增值税申报操作流程
    标题样式
    样式排版
    文本框排版
    使用SmartArt
    插图片与调整
    表格的运用
    Word标尺与段落
  • 原文地址:https://www.cnblogs.com/wuyida/p/6301098.html
Copyright © 2011-2022 走看看