对于一个8bit的无符号整形变量,求其二进制表示中“1”的个数,要求算法执行效率尽可能高。
解法一:
int cout(BYTE v){
int num=0;
while(v){
if(v%2==1){ num++;}
v=v/2;
}
}
解法二:
int count(BYTE v){
}
解法三:
int cout(BYTE v){
}
解法四:空间换时间。
直接将0~255数中“1”的个数存储在数组中,v作为数组下标。算法时间复杂度仅为O(1)
阅读(1039) | 评论(0) | 转发(0) |