码迷,mamicode.com
首页 > 其他好文 > 详细

基本类型算法题目学习(EPI)

时间:2014-08-25 01:09:53      阅读:285      评论:0      收藏:0      [点我收藏+]

标签:使用   strong   问题   amp   sp   算法   on   c   学习   

1.关于奇偶校验的方法中,如何快速的求取一个64-bit的数字的奇偶校验位。(如果1的位数为奇数,则奇偶校验位为1,如果1的位数为偶数,则奇偶校验位为0)

a.暴力枚举法采用一位一位进行计算,一位一位的移位,效率较低。

 

b.x = x & (x-1),每次将最低位的1进行失效,统计1的个数。

 

c.可以采用查表法,例如8位为一个单元,255的空间每个对应1的个数,按照单元统计1的个数。

2.调换64-bit数字的第i位和第j位

a. i位如果与j位相同,没必要进行替换,如果不同,替换的方法为( 1<<i | 1<<j ) ^ 原数字即可。

3.将一个64-bit数字的所有位进行逆序

a.不断的调用上面调换的方法。

 

b.采用查表法,以单元为单位。

4.不适用乘,除,模运算求取两个数的最大公约数(GCD)

a.可以利用减法模拟辗转相除法。

b.递归不断的缩小问题规模。

5.返回1至n之前的素数

a.建立1-n的表,然后利用某个数的倍数将表中不为素数的不断至为false,如果一个一个数字的判断是否是素数效率太低。

6.使用位操作完成两个无符号数字的乘法运算

a.二进制以为,利用位操作模拟加法操作。

7.利用加,减,乘,位操作完成除法的运算

a.总体思想采用减法,但是可以减去2^k,这样可以加快减法的速度。

基本类型算法题目学习(EPI)

标签:使用   strong   问题   amp   sp   算法   on   c   学习   

原文地址:http://www.cnblogs.com/weixliu/p/3933969.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!