数组利用哨兵位查找元素
数组利用哨兵位查找元素
- 存储时把数组的下标
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; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架