在未排序的数组中进行前后搜索

2023年 9月 7日 41.5k 0

在未排序的数组中进行前后搜索

未排序数组 - 数组是由相同类型的元素集合组成的数据结构。未排序数组是这样一种结构,其中元素的顺序是随机的,即在插入时,无论先前元素的顺序如何,该元素都会添加到最后一个元素,并且在这样的数组中进行搜索不会受到任何搜索算法的帮助,因为缺乏元素定位的模式。

搜索 - 在数组中搜索意味着在数组中查找特定元素,该元素可以返回所需元素的位置,也可以返回一个 bool 语句,指定该元素是否存在于数组中或不是。

  • 前搜索 - 前搜索数组意味着从第 0 个索引(即第一个元素)开始对数组进行线性搜索遍历。

  • 反向搜索 - 反向搜索数组意味着从第(n-1)个索引(即最后一个元素)开始对数组进行线性搜索遍历。

问题陈述

给定一个搜索元素 x,查找 x 是否存在于以下情况 -

  • 具有相同大小元素的数组,整数数组。

  • 具有不同大小元素的数组,字符串数组。

示例 1

Input: x = 4, [6, 1, 4, 10, 2]

登录后复制

Output: TRUE

登录后复制

解释 - 在给定数组中,4 出现在第二个索引处。

示例 2

Input: x = “high”, [“goat”, “ice”, “hgh”]

登录后复制

Output: False

登录后复制

解释 - 在给定的数组中,“high”不存在。

解决方案

如上所述,前向搜索从第一个元素开始,后向搜索从最后一个元素开始。将这两种方法结合在一起,由于同时检查数组的前半部分和后半部分,因此在数组中搜索元素的时间可以减少两倍。

要查找某个元素是否出现在数组中,请将first 和last 定义为数组的第一个和最后一个元素。如果第一个或最后一个元素中的任何一个是所需元素,则返回 true,否则第一个元素递增 1,最后一个元素递减 1,然后继续,直到找到该元素。如果遍历完成时first和last相等,则没有找到该元素则返回false。

伪代码

procedure frontBack (arr[], x)
first = 0
last = n - 1
while first

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论