线性查找

线性查找

线性查找又称顺序查找,是一种最简单的查找方法,它的基本思想是从第一个记录开始,逐个比较记录的关键字,直到和给定的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;
	}
posted @ 2018-03-15 09:59  微微_echo  阅读(496)  评论(0编辑  收藏  举报