zoukankan      html  css  js  c++  java
  • 线性查找

    线性查找

    线性查找又称顺序查找,是一种最简单的查找方法,它的基本思想是从第一个记录开始,逐个比较记录的关键字,直到和给定的K值相等,则查找成功;若比较结果与文件中n个记录的关键字都不等,则查找失败。

    中文名 外文名 定义 应用学科 缩写 元 素
    线性查找 linear search 又称为顺序查找 计算机技术方法术语 LS 顺序查找

    概念

    线性查找又称顺序查找,是一种最简单的查找方法,它的基本思想是从第一个记录开始,逐个比较记录的关键字,直到和给定的K值相等,则查找成功;若比较结果与文件中n个记录的关键字都不等,则查找失败。

    查找是对具有相同属性的数据元素(记录)的集合(数据对象)进行的,称之为表或文件,也称字典。对表的查找,若仅对表进行查找操作,而不能改变表中的数据元素,为静态查找;对表除了进行查找操作外,还可能对表进行插入或删除操作,则为动态查找。

    工作原理

    例如r[i].key表示数据元素i中的关键字项。在流程图中的循环回路上要进行两次比较,即对数据元素的关键字项比较和对循环次数的判断。为了提高运算速度,可以作如下的改进:

    • 在原表长n的基础上增加一个元素n+1,将K值送入此元素的关键字项中,这样在循环回路上只要进行一次比较,我们把第n+1个记录称为“监视哨”。这样当n很大时几乎可以节省一半时间。

    • 在顺序查找中,在找到第i个记录时,给定值K和记录中的关键字进行了i次比较。

    • 由于平均查找长度与表长度n成线性关系,因此当n较大时,顺序查找的效率较低。但顺序查找算法比较简单,且对顺序表的存储结构没有限制,既可以用向量作存储结构也可以用链表作存储结构。

    Java源代码:

    	/**
    	 * 线性查找法
    	 * 
    	 * @param list
    	 * @param key
    	 * @return
    	 */
    	public static int linearSearch(int[] list, int key) {
    		for (int i = 0; i < list.length; i++) {
    			if (list[i] == key) {
    				return i;
    			}
    		}
    		return -1;
    	}
    
  • 相关阅读:
    maven+spark2.0.0最大连通分量
    Eclipse+maven+scala2.11.8+spark2.0.0的环境部署
    杀死mapreduce
    filter-自己的理解
    JS变量声明提升
    js==运算符强制转换规则
    html 文字间距
    如你所见,我开始用微博
    vue数据模拟
    vue项目目录介绍
  • 原文地址:https://www.cnblogs.com/echoing/p/8571910.html
Copyright © 2011-2022 走看看