社区
其它技术问题
帖子详情
二分查找算法可以适用于模糊查找吗
jasonhc
2010-12-17 06:48:35
有这样的需求:一组排序好的数据放在一个数组里,用模糊匹配条件可以匹配一块连续的数据,现在需要根据某个模糊匹配条件来找到对应的一组数据。这个算法应该怎么设计比较好呢?
目前的一种办法是用二分查找:先二分找到某一个匹配的元素(index为M),在(0,M)范围内进行多次二分,一直到找到上边界为止;下一步在(M,N)范围内进行多次二分,一直到找到下边界为止。这个方法会有问题吗?
...全文
129
13
打赏
收藏
二分查找算法可以适用于模糊查找吗
有这样的需求:一组排序好的数据放在一个数组里,用模糊匹配条件可以匹配一块连续的数据,现在需要根据某个模糊匹配条件来找到对应的一组数据。这个算法应该怎么设计比较好呢? 目前的一种办法是用二分查找:先二分找到某一个匹配的元素(index为M),在(0,M)范围内进行多次二分,一直到找到上边界为止;下一步在(M,N)范围内进行多次二分,一直到找到下边界为止。这个方法会有问题吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
二分 找到合适的位置 再左右查找 知道找到不合适的 因为是排好序的 符合条件的数据在一起
javascript数据结构与
算法
之检索
算法
查找
数据有2种方式,顺序
查找
和
二分
查找
。顺序
查找
适用
于元素随机排列的列表。
二分
查找
适用
于元素已排序的列表。
二分
查找
效率更高,但是必须是已经排好序的列表元素集合
适用
于各语言的
二分
查找
算法
,你get到了嘛?
目录
二分
查找
算法
定义
二分
查找
算法
的过程剖析
二分
查找
算法
的时间复杂度
二分
查找
的函数方法 Hello!大家好,我是努力赚钱买生发水的灰小猿,最近在做开发的时候偶然用到了之前数据结构上的
二分
查找
算法
,所以在这里和大家简单的分享一下
适用
于各种语言的
二分
查找
算法
编写。 那么什么叫
二分
查找
算法
呢?
二分
查找
算法
定义 所谓
二分
查找
算法
,又叫折半
查找
,一般来说
适用
于数组元素,具体来说应该是已经按照顺序存储结构排列好的数组元素。它是一种效率较高的
查找
算法
,通过对顺序表进行折半
查找
,从而获取到元素.
二分
查找
(代码实现)
文章参考:
二分
查找
(折半
查找
算法
)
二分
查找
又称折半
查找
、
二分
搜索、折半搜索等,是在分治
算法
基础上设计出来的
查找
算法
,对应的时间复杂度为O(logn)。
二分
查找
算法
仅
适用
于有序序列,它只能用在升序序列或者降序序列中
查找
目标元素。\textcolor{Red}{
二分
查找
算法
仅
适用
于有序序列,它只能用在升序序列或者降序序列中
查找
目标元素。}
二分
查找
算法
仅
适用
于有序序列,它只能用在升序序列或者降序序列中
查找
目标元素。在有序序列中,使用
二分
查找
算法
搜索目标元素的核心思想是:不断地缩小搜索区域,降低
查找
目标元素的难
聊一聊
二分
查找
的实现
聊一聊
二分
查找
的实现
二分
查找
其实原理很简单,基于排序的数组每次找中间index的值与目标值做比较,达到快速
查找
的目的。因此带有
二分
策略的
算法
,复杂度都是log(n)级别的。与hash的对比hash
查找
通常是常亮级别的,优势是比
二分
查找
更快,但是由于缺乏排序
查找
的功能,因此在基于范围的
查找
,或者有条件的
模糊
查找
方面是很无能为力的。比如比<=val的最大的数,>=val最小的数,第一个==val的数,最
C语言
二分
查找
算法
[基础
算法
]
二分
查找
算法
一般
适用
于
查找
数组元素
其它技术问题
3,882
社区成员
9,059
社区内容
发帖
与我相关
我的任务
其它技术问题
C/C++ 其它技术问题
复制链接
扫一扫
分享
社区描述
C/C++ 其它技术问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章