欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

查找算法:线性查找

程序员文章站 2022-07-12 11:29:07
...

查找表分为两大类:静态查找表、动态查找表

线性查找即为静态查找

int search(int a[],int key,int n)
{
	int i;
	for(i=0;i<=n;i++)
	{
	    if(a[i]==key)
		return i;	
	}
	return 0;
 } 


向线性查找中加入标记可以将算法效率提高数倍

int search(int a[],int key,int n)
{
	int i;
	a[n]=key;      //将其设为标记 
	
	while(a[i]!=key)
	    i++;
	
	return i!=n;    //若 i!=n 则return 1 
		        //否则 return 0 
 } 


效率提升的原因:

主循环中比较运算的次数:

第一个函数需要两个关键字比较,一个是for循环的结束条件,另一个是关键字之间的比较

第二个函数只需要一个不等价运算


时间复杂度:O(n)