问题描述
有这样的需求:一组排序好的数据放在一个数组里,用模糊匹配条件可以匹配一块连续的数据,现在需要根据某个模糊匹配条件来找到对应的一组数据。这个算法应该怎么设计比较好呢?目前的一种办法是用二分查找:先二分找到某一个匹配的元素(index为M),在(0,M)范围内进行多次二分,一直到找到上边界为止;下一步在(M,N)范围内进行多次二分,一直到找到下边界为止。这个方法会有问题吗?
解决方案
解决方案二:
不可以
解决方案三:
模糊查询来是要查询所有的数据,如dell...hellhello...xell如果你要查询ell,肯定是要搜索所有的数据,二分法没有办法解决此问题。
解决方案四:
不行如你要查找abcaabc和abcx分别在二分的两头,但是你都要匹配
解决方案五:
引用2楼inhibitory的回复:
模糊查询来是要查询所有的数据,如dell...hellhello...xell如果你要查询ell,肯定是要搜索所有的数据,二分法没有办法解决此问题。
学习了
解决方案六:
谢谢大家。说的不太清楚。举个例子:比如数据是字符串,需要找以T开始的所有字符串(也就是"模糊匹配条件可以匹配一块连续的数据")。当然实际情况要更复杂一些。
解决方案七:
谢谢大家的帮助,我要处理的情况是:匹配的数据是在一个连续的区域内,最终是用多次二分找到的上下边界。先找边界是为了能在某种情况下提高点效率,不是必须的。
时间: 2024-11-22 19:57:07