数组利用哨兵位查找元素
- 存储时把数组的下标
0
处空出,留着放哨兵位; - 从后向前遍历数组,直到找到目标元素,或者找到哨兵结束;
- 根据被找到元素的所在位置判断元素是否在数组中存在
- 在
0
处:不存在 - 不在
0
处:存在
- 在
实现:
int searchBySent(int * arr, int target) {
//把下标0赋值为目标
arr[0] = target;
int i;
for (i = SIZE - 1; i >= 0; i--) {
if (arr[i] == target) {
//如果i没有走到头,即1至SIZE-1下标处有target元素的存在,返回下标
return i;
}
}
//如果是在下标0处找到的,返回-1
return -1;
}
标签:下标,target,int,元素,哨兵,查找,数组
From: https://www.cnblogs.com/codels/p/18328718