diff --git a/Others/BrianKernighanAlgorithm.java b/Others/BrianKernighanAlgorithm.java index a4ea69ce..eaf43093 100644 --- a/Others/BrianKernighanAlgorithm.java +++ b/Others/BrianKernighanAlgorithm.java @@ -5,16 +5,18 @@ import java.util.Scanner; * @author Nishita Aggarwal * * Brian Kernighan’s Algorithm + * * algorithm to count the number of set bits in a given number + * * Subtraction of 1 from a number toggles all the bits (from * right to left) till the rightmost set bit(including the * rightmost set bit). * So if we subtract a number by 1 and do bitwise & with - * itself (n & (n-1)), we unset the rightmost set bit. + * itself i.e. (n & (n-1)), we unset the rightmost set bit. + * * If we do n & (n-1) in a loop and count the no of times loop * executes we get the set bit count. - * Number of iterations of the loop is equal to the number of - * set bits in a given integer. + * * * Time Complexity: O(logn) *