Quantcast
Viewing all articles
Browse latest Browse all 4

Answer by PengOne for Bits counting algorithm (Brian Kernighan) in an integer time complexity

This algorithm goes through as many iterations as there are set bits. So if we have a 32-bit word with only the high bit set, then it will only go once through the loop. In the worst case, it will pass once per bit. An integer n has log(n) bits, hence the worst case is O(log(n)). Here's your code annotated at the important bits (pun intended):

  int count_set_bits(int n){        int count = 0; // count accumulates the total bits set         while(n != 0){            n &= (n-1); // clear the least significant bit set            count++;        }  }

Viewing all articles
Browse latest Browse all 4

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>