算法!一步又一步的优化

今天,正好碰到一个32位二进制数计算有多少个1的问题。网上搜了一下,C++没有这个函数,但是具体实现的代码倒一个比一个巧妙。
算法1:一位一位右移,这个是最容易想到的,这里不说了。
算法2:http://crane.is-programmer.com/posts/17830.html
利用分治的思想,两两相加得到结果。已经让人叹为观止了。
算法3:HAKMEM算法
http://blog.csdn.net/bvbook/archive/2008/04/15/2292823.aspx
只剩下没几个加减法和位运算了。
算法4:MIT HAKMEM算法最终版:
http://blog.csdn.net/msquare/archive/2009/09/09/4536388.aspx
彻底让人震惊了。

算法很美妙,好的算法可以让程序速度发生数量级的变化~

《算法!一步又一步的优化》有2个想法

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注