顺序表查找算法,是算法中最基础的查找技术。
算法原理:通俗的说,从表中查找数据,只要看到数据与所取值相同,就返回当前值索引。
上代码:
public int seqSerch(int []a, int key){代码很简单,但是当遇到多线程或者并发请求量大的时候,i的值可能会越界。所以,程序界有个
int i,n=a.length;
for(i = 1; i < n ; i++){
if( a[i] == key ){
return i;
}
}
}
有名的哨兵模式,下面是改写后的代码:
public int seq_serch(int []a, int key){ int i; a[0] = key;//哨兵 i = a.length//从尾部开始 while(a[i] != key){ i--; } return i;//如果返回0则查找失败}
总结:顺序查找技术遇到查找的范围非常大时,效率极为低下。数据量不大时,建议使用哨兵模式。