数组利用哨兵位查找元素
数组利用哨兵位查找元素
- 存储时把数组的下标
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;
}
浙公网安备 33010602011771号