顺序表查找(Sequential Search)又叫线性表查找,是最基本的查找法,从第一个开始到最后一个逐个与关键字比较。成功不成功都返回。
//顺序表查找
int SequentialSearch(int* a,int n, int key)
{
for(int i=0;i<n;i++)
{
if(key==a[i])
{
return i;
}
}
else
return -1;
}
上面代码缺点是每次取i都要跟n 比较;
//顺序表查找优化
int SequentialSearch2(int* a,int n, int key)
{
a[n]=key;
int i=0;
while(key != a[i])
{
i++;
}
return i;//返回n表示失败了
}
此时代码从尾部开始查找,这种查找避免了每次查找i跟n的比较 时间复杂度为O(n);