int Sequential_Search2(int *a ,int n,int key)
{
int i=0;
a[0]=key;//哨兵
i=n;
while(a[i]!=key)
{
i--;
}
return i;//返回0就是查找失败
}
返回0就认为没有这个元素。
可是如果数组的第一个元素恰好就是key,返回0就认为没有这个元素,这样不合理吧。
int Sequential_Search2(int *a ,int n,int key)
{
int i=0;
a[0]=key;//哨兵
i=n;
while(a[i]!=key)
{
i--;
}
return i;//返回0就是查找失败
}
返回0就认为没有这个元素。
可是如果数组的第一个元素恰好就是key,返回0就认为没有这个元素,这样不合理吧。
第一次循环的时候是a[n],所以应该是a[1..n] 而不是 a[0..n-1] 所以算法是对的