社区
其它技术问题
帖子详情
二分查找算法可以适用于模糊查找吗
jasonhc
2010-12-17 06:48:35
有这样的需求:一组排序好的数据放在一个数组里,用模糊匹配条件可以匹配一块连续的数据,现在需要根据某个模糊匹配条件来找到对应的一组数据。这个算法应该怎么设计比较好呢?
目前的一种办法是用二分查找:先二分找到某一个匹配的元素(index为M),在(0,M)范围内进行多次二分,一直到找到上边界为止;下一步在(M,N)范围内进行多次二分,一直到找到下边界为止。这个方法会有问题吗?
...全文
141
13
打赏
收藏
二分查找算法可以适用于模糊查找吗
有这样的需求:一组排序好的数据放在一个数组里,用模糊匹配条件可以匹配一块连续的数据,现在需要根据某个模糊匹配条件来找到对应的一组数据。这个算法应该怎么设计比较好呢? 目前的一种办法是用二分查找:先二分找到某一个匹配的元素(index为M),在(0,M)范围内进行多次二分,一直到找到上边界为止;下一步在(M,N)范围内进行多次二分,一直到找到下边界为止。这个方法会有问题吗?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jasonhc
2011-01-10
打赏
举报
回复
非常感谢,我脑子是有些不太清醒了 ^_^。最终还是做成了先找两个边界(多次二分),只是为了某种情况下能提高点效率。
[Quote=引用 12 楼 sduxiaoxiang 的回复:]
排好序后同一条件的在一块啊
找到一个就相当于都找到了啊 就在它左边和右边啊
[/Quote]
sduxiaoxiang
2010-12-19
打赏
举报
回复
[Quote=引用 11 楼 jasonhc 的回复:]
有些糊涂了。二分应该只能定位到那个范围内的某一项数据吧,怎么能正好定位到边界呢?
[/Quote]
排好序后同一条件的在一块啊
找到一个就相当于都找到了啊 就在它左边和右边啊
jasonhc
2010-12-19
打赏
举报
回复
有些糊涂了。二分应该只能定位到那个范围内的某一项数据吧,怎么能正好定位到边界呢?
luciferisnotsatan
2010-12-18
打赏
举报
回复
你的模糊匹配怎么个模糊匹配法?
二分查找只有找到和找不到两种结果
某某9
2010-12-18
打赏
举报
回复
[Quote=引用 9 楼 jasonhc 的回复:]
能说具体一点吗,怎么能一次就找到某一个边界的位置,用什么算法?
引用 7 楼 bdmh 的回复:
两次,分别找上下边界的位置,然后取出中间的数
[/Quote]
二分查找啊。
查找两次,分别匹配上下界。
是这个意思吧?
jasonhc
2010-12-18
打赏
举报
回复
能说具体一点吗,怎么能一次就找到某一个边界的位置,用什么算法?
[Quote=引用 7 楼 bdmh 的回复:]
两次,分别找上下边界的位置,然后取出中间的数
[/Quote]
liuintermilan
2010-12-18
打赏
举报
回复
[Quote=引用 4 楼 jasonhc 的回复:]
谢谢大家。说的不太清楚。举个例子:比如数据是字符串,需要找以T开始的所有字符串(也就是"模糊匹配条件可以匹配一块连续的数据")。当然实际情况要更复杂一些。
[/Quote]
我觉得用二分倒不是不行,但是对于查找字符串来说,应该是做索引更方便。
你的上下边界怎么确定,总要有阈值控制的。
bdmh
2010-12-18
打赏
举报
回复
两次,分别找上下边界的位置,然后取出中间的数
jasonhc
2010-12-18
打赏
举报
回复
怎么能直接定位到上或下边界呢,一次查找似乎不行吧。
[Quote=引用 5 楼 bdmh 的回复:]
其实可以分两次查找上边界和下边界,因为你的匹配范围肯定要有个范围的
[/Quote]
bdmh
2010-12-18
打赏
举报
回复
其实可以分两次查找上边界和下边界,因为你的匹配范围肯定要有个范围的
jasonhc
2010-12-18
打赏
举报
回复
谢谢大家。说的不太清楚。举个例子:比如数据是字符串,需要找以T开始的所有字符串(也就是"模糊匹配条件可以匹配一块连续的数据")。当然实际情况要更复杂一些。
liuintermilan
2010-12-17
打赏
举报
回复
其实不是很明白你的需求,你的模糊匹配的条件是什么样的?
sduxiaoxiang
2010-12-17
打赏
举报
回复
二分 找到合适的位置 再左右查找 知道找到不合适的 因为是排好序的 符合条件的数据在一起
使用Python实现
二分
查找
算法
二分
查找
算法
是一种高效的搜索
算法
,时间复杂度为O(logn)。在处理大量有序数据时,可以使用该
算法
快速
查找
指定元素。
二分
查找
算法
是一种常见的搜索
算法
,可以在有序数组中
查找
指定值的位置。c. 如果中间位置的元素大于目标元素,则说明目标元素在左侧,将right指针移动到mid - 1位置。d. 如果中间位置的元素小于目标元素,则说明目标元素在右侧,将left指针移动到mid + 1位置。1. 定义左右指针,初始值为数组的第一个和最后一个元素的下标。b. 如果中间位置的元素等于目标元素,则返回mid。
查找
算法
:
二分
查找
,golang实现
在实际场景中,选择合适的
查找
算法
对于提高程序的效率和性能至关重要,本节课主要讲解"
二分
查找
"的
适用
场景及代码实现。
Java实现的
二分
查找
算法
二分
查找
又称折半
查找
,它是一种效率较高的
查找
方法。 折半
查找
的
算法
思想是将数列按有序化(递增或递减)排列,
查找
过程中采用跳跃式方式
查找
,即先以有序数列的中点位置为比较对象,如果要找的元素值小 于该中点元素,则将待查序列缩小为左半部分,否则为右半部分。通过一次比较,将
查找
区间缩小一半。 折半
查找
是一种高效的
查找
方法。它可以明显减少比较次数,提高
查找
效率。但是,折半
查找
的先决条件是
查找
表中的数据元素必...
数据结构 7.
二分
查找
Leetcode部分
二分
查找
相关练习一、
二分
查找
1.栈的定义2.栈的实现2.1 实现一个有序数组的
二分
查找
算法
2.2 实现
模糊
二分
查找
算法
(比如大于等于给定值的第一个元素)3. 练习x 的平方根 一、
二分
查找
1.栈的定义
二分
查找
算法
也称折半
查找
算法
,是在有序数组中用到的较为频繁的一种
查找
算法
。在未接触
二分
查找
算法
时,最通用的一种做法是,对数组进行遍历,跟每个元素进行比较,即顺序
查找
。二分查...
什么是
二分
查找
?它的时间复杂度是多少?
二分
查找
是一种高效且
适用
范围广的
查找
算法
,尤其在处理大规模、静态且有序的数据集时表现出色。然而,在数据频繁变化或数据量较小的情况下,其效率可能不如线性
查找
。
其它技术问题
3,882
社区成员
9,046
社区内容
发帖
与我相关
我的任务
其它技术问题
C/C++ 其它技术问题
复制链接
扫一扫
分享
社区描述
C/C++ 其它技术问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章