
数据结构与算法
数据结构与算法
Gy-qwert
这个作者很懒,什么都没留下…
展开
-
05- 分块查找算法
分块查找算法(Block Search)也称为索引顺序查找算法,是一种利用索引块结构进行查找的算法。它的基本思想是:首先将数据分成若干块,并建立一个索引表,索引表中的每个元素指向对应块的起始位置,然后根据目标元素的大小,在索引表中确定目标元素可能所在的块,最后在确定的块内进行顺序查找。它将待查找集合分成若干个块(也称为桶),每个块内的元素可以是有序的,但不同块之间的元素顺序不做要求。但是由于每个块内的元素可以是无序的,因此在块内部仍然需要进行顺序查找,这可能会带来一定的时间开销。原创 2023-09-12 14:17:18 · 572 阅读 · 0 评论 -
04- 斐波那契查找算法
斐波那契查找算法是一种基于斐波那契数列的查找算法,它利用了斐波那契数列的特性,通过递归地将查找范围划分为黄金比例的两部分来快速定位目标元素。原创 2023-09-12 12:36:59 · 77 阅读 · 0 评论 -
03- 插值查找算法
插值查找算法在数据分布较均匀且有序的集合中效果较好,可以更快地定位目标元素。然而,在分布不均匀且有序度较低的情况下,插值查找可能退化为线性查找。插值查找算法是一种根据查找目标的近似位置来确定查找范围的查找算法。1.确定查找范围的边界:设定左边界 low 和右边界 high,初始时分别为集合的最小索引和最大索引。2.计算插值位置:根据目标元素的估计值计算插值位置 pos。这个估计的位置被用来缩小查找范围,从而快速定位目标元素。4.重复步骤2和步骤3,直到找到目标元素或边界交叉。原创 2023-09-12 04:31:51 · 99 阅读 · 0 评论 -
02-基本查找算法
基本查找算法虽然简单,但在处理小型数据集或无序集合时仍然有用。然而,对于大规模数据集和已排序的集合,更高效的查找算法(例如哈希表或树)可能更适合。因此,在选择查找算法时,应根据数据集的特点和查找需求进行评估和选择。基本查找算法用于在一个集合(数组或列表)中查找指定的元素。线性查找是一种简单直观的查找算法,它逐个地比较集合中的元素,直到找到目标元素或遍历完整个集合。原创 2023-09-12 04:18:00 · 47 阅读 · 0 评论 -
01-二分查找算法
二分查找算法(Binary Search Algorithm)是一种高效的查找算法,适用于有序数组。它通过将目标值与数组的中间元素进行比较,从而确定目标值是在中间元素的左侧还是右侧,然后在剩余的一半数组中继续查找,直到找到目标值或者确定目标值不存在。a. 计算中间位置的索引:mid = (left + right) / 2。1.确定输入数组的左右边界,初始时左边界为0,右边界为数组长度减1。3.如果循环结束仍未找到目标值,说明目标值不存在,返回-1。原创 2023-08-01 02:51:49 · 135 阅读 · 0 评论