2 qq 21439127 qq_21439127 于 2016.04.07 18:33 提问

求解类似数据如何搜索!二进制数据的快速查找

数据格式如下
"10101010001001101100100011000100100100001011100001000010010101000101010101000101".....共计256位
就是除了1就是0的唯一标示符256位的跟64位的还有1024位的
这种标示符
目前我已经有256位的跟64位的了,目前数据我已经生成了800w条,陆续生成中

字符串1="10101101001010010111010101100001011101000101010010001000111001101010010101"...
字符串2="10101001001011010111010101000001011101000101110010001001111001101010010101"....
求这两个字符串的相似度 顺序比较 以下为相似度 计算

$len = strlen($hash1); for ($i = 0; $i < $len; $i++){ if ($hash1[$i] !== $hash2[$i]) $count++;
} return 1-($i/$len); 

得到相似度
搜索要求为
从数据库中读取出跟 "字符串s" 相似度>0.9的,目前数据采用mysql储存,属于个人瞎胡闹搞得东西,不会采用商业数据库储存买不起,可以采用nosql储存,memcache储存,主要程序语言PHP,javascript算是预处理,我就会这两种!

求大神解这种数据如何搜索!!!!!!

1个回答

qq_26714389
qq_26714389   2016.04.07 19:13

应该是return 1-($count/$len);吧,老实说你问题并不是很明确,我现在有两种理解,你是问如何在数据库中进行这种的数据的搜索,或者问,给这两个字符串如何快速筛选

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
C++编程 – 快速查找一个对象
2014-7-6 flyfish 在初始阶段会有大量数据增删改,而后期很少有更改,后期大部分是查询操作。 建立索引,使用排序的vector,使用二分法查找 以用户信息为例 用户信息包括,ID,名字,性别,手机号码 class CGender { public: enum { Female=0, Male=1, NotSpecified=2 }; }; clas
c语言 快速查找算法
快速排序(Quicksort)是对冒泡排序的一种改进。由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 假设要排序的数组是A[1]……A[N],首先任意选取一个数据(通常选用第一个数据)作为关键数据,然后将所有比它的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一躺快速排序。一躺快速排序的算法是: 1)、设置两个变量I、J,排序开始的时候I:=1,J:=N; 2)以第一个数组元素作为关键数据,赋值给X,即X:=A[1]; 3)、从J开始向前搜索,即由后开始向前搜索(J:=J-1),找到第一个小于X的值,两者交换; 4)、从I开始向后搜索,即由前开始向后搜索(I:=I+1),找到第一个大于X的值,两者交换; 5)、重复第3、4步,直到I=J
JS快速查找法
有过相关经验的朋友都知道,Jscript的效率毕竟有限,在数组中查找数据时如果用常规的算法来做执行起来会很慢。例如在一个含500个字符串的data数组里,我们想要找到一个指定的字符(key),返回它的数组下标,如果用这样的算法:CODE:function usual_search(data,key){var m=data.lengthfor(i=0;i{if(data[i]==key)
怎样快速从一个XML文件中查找信息
<!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--><script type="text/javascript"
快速从一个XML文件中查找信息
在网络时代,XML文件起到了一个保存和传输数据的作用。Soap协议通过Xml交流信息,数据库通过Xml文件存取等等。那么怎样快速的从一个XML文件中取得所需的信息呢?我们知道,JAVA的JAXP中和Microsoft.Net都有Xml分析器,Microsoft.Net是边读边分析,而JAXP是读到内存中然后才进行分析(还有一种是事件机制去读),总而言之,是不利于快速读取。基于此,Microso
bitmap实现数据查找和排序
什么是Bit-map 所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省。 如果说了这么多还没明白什么是Bit-map,那么我们来看一个具体的例子,假设我们要对0-7内的5个元素(4,7,2,5,3)排序(这里假设这些元素没有重复)。那么我们就可以采用Bit-map的方法来达到排序的目的
常用查找数据结构及算法
目录 一、基本概念 二、无序表查找 三、有序表查找 3.1 二分查找(Binary Search) 3.2 插值查找 3.3 斐波那契查找 四、线性索引查找 4.1 稠密索引 4.2 分块索引 4.3 倒排索引 五、二叉排序树 六、 平衡二叉树 七、多路查找树(B树) 7.1 2-3树 7.2 2-3-4树 7.3 B树 7.4 B+树
Cpp--字符串快速查找运用
对于c++中字符操作,在c中已经有了完整强大的操作函数,首先从一个函数说起:c_str()。 const char *c_str(); c_str()函数返回一个指向正规C字符串的指针, 内容与本string串相同. 这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式。 注意:一定要使用str
二进制数据二进制数据二进制数据
二进制数据二进制数据二进制数据二进制数据二进制数据二进制数据二进制数据二进制数据二进制数据二进制数据二进制数据二进制数据二进制数据二进制数据二进制数据
C# 二进制字节流查找函数IndexOf
C# 二进制字节流查找函数IndexOf /// /// 报告指定的 System.Byte[] 在此实例中的第一个匹配项的索引。 /// /// 被执行查找的 System.Byte[]。 /// 要查找的 System.Byte[]。 /// 如果找到该字节数组,则为 searchBytes 的索