算法:判断数字奇偶性(parity)

本文介绍了四种计算数字奇偶性(parity)的方法:brute-force,低位删除法,缓存法和交换法。通过位操作和算法优化,实现了从O(n)到O(log n)的不同时间复杂度解决方案。文章探讨了这些方法的原理和应用,旨在启发对算法性能提升的思考。
摘要由CSDN通过智能技术生成

数字奇偶性在英文里称为parity,意思是一个数字的bit位中,1的个数是否是奇数,比如说二进制数1010,bit位中有两个1,所以其parity为0,二进制数1011,bit位中有三个1,所以其parity为1。
计算数据奇偶性的方法很多,下面分别介绍几种常用的方法,最后再介绍一下今天看到的新方法,非常有意思。

brute-force

parity是指一个数字bit位中1的个数,那我们就逐位数一数这个数字bit位中1的个数,最后用1的个数对2求余即可得到其parity值。Java代码如下:

public static short countBits(int x){
    short numBits = 0;
    while(x != 0){
        numBits += (x & 1);
        x >>>= 1;
    }
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值