由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 这个算法问题怎么处理?求思路
相关主题
golang不能发布二进制包请教一个C++的设计问题
一道实用的算法题How to Search Users within 50 miles away from me
请问一个查找算法。问个文字decoding的题目
一个查找算法题Python Browsermob Proxy Library on mac issue
请问,关于相似字符串查找的算法问题该在这里问么?Java 提高performance问题
在2D格子上最短路程的算法问题各位对编程预制板快,即插即用有何高见?有什么参考网站
算24的程序贡献一下:本版上搜集的 Google 面试题 (转载)
COM本质论调用DLL里面构造函数的一点不解一道C++面试编程题
相关话题的讨论汇总
话题: 集合话题: 查找话题: 算法话题: 64bits话题: 1011
进入Programming版参与讨论
1 (共1页)
m****y
发帖数: 28
1
问题其实很简单
我的程序要维护一个集合
集合里的每个元素都是一个64bits的二进制数
要支持对这个集合进行插入,删除,查找三种操作
插入和删除就不说了
查找的要求是这样的:
给一个64bits的数作为input
要求找出集合里跟input的二进制差异最小的数,
可以是一个或者多个
甚至可以不要求最优的精确查找,返回次优的结果也可以接受
举个例子
比如集合里有{1100, 1011}
查找1010的话,应该返回1011,因为他们之间只有一个bit的差异
请问,该采用什么样的数据结构和算法呢?
c*****t
发帖数: 1879
2
我觉得应该看你有多少数字,具体是什么 pattern,然后决定用什么算法。
否则 brute force 虽然慢,但是如果数量少的话,而且注意 optimization
的话,速度其实还是应该可以接受的。
如果只是 1-2 个错的话,trie 应该可以很快。如果把问题分成两个 32-bit
部分,处理 3-4 也估计可以。多的话,这方法就估计很麻烦了。
另外 hash table + extend (类似 BLAST 的办法)估计也可以,但是也是
对数据的 pattern 要做些假设的。

【在 m****y 的大作中提到】
: 问题其实很简单
: 我的程序要维护一个集合
: 集合里的每个元素都是一个64bits的二进制数
: 要支持对这个集合进行插入,删除,查找三种操作
: 插入和删除就不说了
: 查找的要求是这样的:
: 给一个64bits的数作为input
: 要求找出集合里跟input的二进制差异最小的数,
: 可以是一个或者多个
: 甚至可以不要求最优的精确查找,返回次优的结果也可以接受

X****r
发帖数: 3557
3
没错,因为brute force查找也只不过是O(n)而已,要再快的通用方法不太容易,
如果有些假设才好做。另外也取决于哪种操作更多些。

【在 c*****t 的大作中提到】
: 我觉得应该看你有多少数字,具体是什么 pattern,然后决定用什么算法。
: 否则 brute force 虽然慢,但是如果数量少的话,而且注意 optimization
: 的话,速度其实还是应该可以接受的。
: 如果只是 1-2 个错的话,trie 应该可以很快。如果把问题分成两个 32-bit
: 部分,处理 3-4 也估计可以。多的话,这方法就估计很麻烦了。
: 另外 hash table + extend (类似 BLAST 的办法)估计也可以,但是也是
: 对数据的 pattern 要做些假设的。

t****t
发帖数: 6806
4
你这查找不就是generalized channel code decoding问题的翻版嘛
如果集合没有什么特征, 是没什么搞头的, 直接O(N)得了
要是你万一想出什么搞头, 直接投稿到Trans IT估计可以拿年度最佳paper奖不在话下
如果集合是个linear space, 那就是linear code, 请去计算syndrome和coset leader
如果还有别的特征in addition, 请参见channel code的参考书

【在 m****y 的大作中提到】
: 问题其实很简单
: 我的程序要维护一个集合
: 集合里的每个元素都是一个64bits的二进制数
: 要支持对这个集合进行插入,删除,查找三种操作
: 插入和删除就不说了
: 查找的要求是这样的:
: 给一个64bits的数作为input
: 要求找出集合里跟input的二进制差异最小的数,
: 可以是一个或者多个
: 甚至可以不要求最优的精确查找,返回次优的结果也可以接受

1 (共1页)
进入Programming版参与讨论
相关主题
一道C++面试编程题请问,关于相似字符串查找的算法问题该在这里问么?
C语言里的<<=是什么意思?在2D格子上最短路程的算法问题
linux的二进制兼容性这么差,影响易用性啊算24的程序
字符串变换的问题COM本质论调用DLL里面构造函数的一点不解
golang不能发布二进制包请教一个C++的设计问题
一道实用的算法题How to Search Users within 50 miles away from me
请问一个查找算法。问个文字decoding的题目
一个查找算法题Python Browsermob Proxy Library on mac issue
相关话题的讨论汇总
话题: 集合话题: 查找话题: 算法话题: 64bits话题: 1011