
位操作之 Kernighan's Algorithm
位操作 (Bit Manipulation) 往往能通过令人惊叹的技巧带来性能的极致提升。其中,计算一个整数二进制表示中 1 的个数(即 Population Count 或 Hamming Weight)是一个非常经典的问题。 最朴素的解法是循环检查每一位(Loop & Shift),其时间复杂度固定为 $O(n)$。然而,Kernighan’s Algorithm 提供了一种更为优雅且高效的思路,将时间复杂度优化至 $O(k)$($k$ 为 set bit 的个数):跳过所有的 0,只处理 1。 ...