又被阿里机考虐了一次,决定改变策略开始刷题T^T

一个字节(8bit)的无符号整型,求其二进制中的“1”的个数,算法执行效率尽可能高。

最先想到的移位操作,末尾位&00000001,然后右移,算法复杂度为O(log(v))

 #include "stdafx.h"
#include <iostream>
using namespace std; int Count(int v);
int main()
{
int v = ;
int num = Count(v);
cout<<num<<endl;
return ;
} int Count(int v)
{
int num = ;
while(v)
{
num += v &0x01;
v >>= ;
}
return num;
}

还有一种算法复杂度为O(1)的,就是利用查表法,空间来换取时间,经典的理念。

http://blog.csdn.net/justpub/article/details/2292823

但是,看了上述博客后,发现弊端,这个操作需要访问内存,运行时间比法一长很多。

【扩展】:给定两个正整数(二进制表示)A和B,问把A变成B需要改变多少位,也就是说,两者的二进制表示中有多少位不同?

取一个C = A^B,C中1的个数就是A和B不同的位数。

最新文章

  1. 【Java每日一题】20161221
  2. 【转】iOS夯实:ARC时代的内存管理
  3. 诡异的 未处理的IOErrorEvent 2035
  4. SQLite Design and Concepts
  5. 【BZOJ2818】Gcd 欧拉筛
  6. webservice配置
  7. OpenCV中的全景拼接例程
  8. hadoop、hbase、hive、zookeeper版本对应关系
  9. poj 3440 Coin Toss 概率问题
  10. Andstudio更新失败的解决办法。
  11. 《Java程序员面试笔试宝典》之Java变量命名有哪些规则
  12. EntityFramework sum嵌套
  13. 创建 .gitignore 文件过滤规
  14. 在FFMPEG中使用libRTMP的经验
  15. 3种检测页面是否符合amp标准的方法
  16. 扩展BootstapTable支持TreeGrid
  17. 关于QTcreator出现不能包含头文件的解决
  18. 常见Java问题
  19. Understanding and Creating OWIN Middlewares - Part 1
  20. [Todo]非常好的免费IT书籍资源 &amp; Github排名

热门文章

  1. 在服务器 部署 asp.net core 报502.5的错
  2. AVL树 - 学习笔记
  3. Python学习札记(十) Function1 函数调用
  4. Centos中使用Jenkins执行gulp命令:command not found
  5. C# 操作FTP
  6. IDEA的Tomcat配置Web的项目创建以及Servlet简单运行。
  7. Docker总结
  8. [转载]java获取word里面的文本
  9. laravel中Crypt加密方法
  10. http请求的GET和POST请求:查询和新增(server.php)