两种方法
1.普通方法,倒序(顺序)遍历数组中的每个元素,与查找元素相比较,时间复杂度为O(n)。
static int search_seq2(int a[],int n,int key) {
for(int i = n-1;i>=0;i--) {
if(a[i] == key)
return i;
}
return -1 ;
}
2.哨兵方法。将数组第一个元素置为要查找的元素,然后倒序遍历数组每一个元素,和查找元素相比。但是因为数组第一个为查找元素,所以当找不到元素的时候,就会把数组第一个元素和查找元素相比。:没有判断越界的代码了,即普通方法中的“i>=0”。对于数据较多(>=1000)的情况下,哨兵比普通方法所需平均时间减少了一半。