查找算法:线性查找
程序员文章站
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)