字节数组之间的百分比差异

时间:2018-02-20 10:05:28

标签: c# arrays compare byte diff

我有100,000个固定长度的字节数组(长度为150),我想彼此比较。我想识别我的100,000中的任何字节数组,它们在同一个地方有超过90%的字节值,并且与一个或多个其他数组具有相同的值。

例如:

测试 1:A4343FBC2321FFD135423232EF .....(与2(100%)和3(96%)匹配)

2:A4343FBC2321FFD135423232EF .....(与1(100%)和3(96%)匹配)

3:A4343FBC2321FFD135423232E1 .....(匹配1(96%)和2(96%))

4:B465454ABC32321323AAAAAFFF .....(不匹配)

5:FED124343214343FE3232FE323 .....(与7(100%)匹配)

6:FED12434321431121212121212 .....(无匹配,相似度低于90%)

7:FED124343214343FE3232FE323 .....(与5(100%)匹配)

我想用C#编写它并尽可能快地运行它,因为我可能要求它运行超过一百万字节的数组来进行比较。

1 个答案:

答案 0 :(得分:0)

由于任何O(n ^ 2)解决方案对于n = 100,000似乎太慢,您可能想要使用https://en.wikipedia.org/wiki/Locality-sensitive_hashing

我不确定它会有所帮助,但它应该给你一些指导。