首页 > 关于哨兵顺序查找的疑问

关于哨兵顺序查找的疑问

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] 所以算法是对的

【热门文章】
【热门文章】