prime_tang
2015-03-24 08:06有没有方法能够加速以下计算汉明距离的算法?通过汇编语言?
2下面的代码是一个基本的计算汉明距离的C++程序,但由于所设计的应用程序的限制,在使用过程中需要特别多次地使用该算法,为了提高应用效率,是否可以从改进该算法上入手?有没有适当的方法能够提高该算法本身的效率?通过汇编语言有没有实现的可能?
unsigned dist(const unsigned char *vec1, const unsigned char *vec2, unsigned dim)
{
const unsigned char popCountTable[] =
{
0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4, 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5, 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5, 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5, 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7, 4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8
};
unsigned dist_ = 0;
for (unsigned i = 0; i != dim; ++i)
{
dist_ += popCountTable[vec1[i] ^ vec2[i]];
}
return dist_;
}
- 点赞
- 回答
- 收藏
- 复制链接分享
0条回答
为你推荐
- 怎样计算算法的时间复杂度?
- c语言
- c++
- 1个回答
- 程序员必须掌握的核心算法有哪些?
- 云计算
- 2个回答
- 一个机器人移动的距离的计算,是用什么算法实现的?要求C语言,谢谢
- r语言
- Golang
- erlang
- 1个回答
- 这个问题请问用最大费用流怎么可以计算?或者有没有什么更好的算法, C语言的问题
- r语言
- Golang
- erlang
- 1个回答
- 一个二叉树旋转的问题,二叉树旋转的算法在图中怎么计算?
- r语言
- Golang
- erlang
- 1个回答
换一换