From 8d784b94c4460baaa1b63f1164bb8ceff9f29d57 Mon Sep 17 00:00:00 2001 From: Pankaj Kumar Bind <73558583+Pankaj-Bind@users.noreply.github.com> Date: Fri, 1 Mar 2024 21:27:39 +0530 Subject: [PATCH 1/5] CountSetBits code file added --- .../bitmanipulation/CountSetBits.java | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/main/java/com/thealgorithms/bitmanipulation/CountSetBits.java diff --git a/src/main/java/com/thealgorithms/bitmanipulation/CountSetBits.java b/src/main/java/com/thealgorithms/bitmanipulation/CountSetBits.java new file mode 100644 index 000000000000..50cd4f6d7785 --- /dev/null +++ b/src/main/java/com/thealgorithms/bitmanipulation/CountSetBits.java @@ -0,0 +1,24 @@ +// CountSetBits.java +package com.thealgorithms.bitmanipulation; + +public final class CountSetBits { + private CountSetBits() { + } + + /** + * CountSetBits class provides a method to count the number of set bits (1s) in an integer. + * Implementation by Pankaj Kumar Bind (https://github.com/Pankaj-Bind). + */ + public static int countSetBits(int n) { + int count = 0; + while (n > 0) { + count += n & 1; + n >>= 1; + } + return count; + } +} + + /* Time Complexity: O(log n) + * Space Complexity: O(1) + */ \ No newline at end of file From 039414e0190b749cf8f9195aeb12ab5cc367ae1f Mon Sep 17 00:00:00 2001 From: Pankaj Kumar Bind <73558583+Pankaj-Bind@users.noreply.github.com> Date: Fri, 1 Mar 2024 21:29:24 +0530 Subject: [PATCH 2/5] CountSetBits Test file added --- .../bitmanipulation/CountSetBitsTest.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 src/test/java/com/thealgorithms/bitmanipulation/CountSetBitsTest.java diff --git a/src/test/java/com/thealgorithms/bitmanipulation/CountSetBitsTest.java b/src/test/java/com/thealgorithms/bitmanipulation/CountSetBitsTest.java new file mode 100644 index 000000000000..50e74b7dfd7f --- /dev/null +++ b/src/test/java/com/thealgorithms/bitmanipulation/CountSetBitsTest.java @@ -0,0 +1,17 @@ +// CountSetBitsTest.java +package com.thealgorithms.bitmanipulation; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +public class CountSetBitsTest { + @Test + void testCountSetBits() { + assertEquals(0, CountSetBits.countSetBits(0)); + assertEquals(1, CountSetBits.countSetBits(1)); + assertEquals(2, CountSetBits.countSetBits(5)); + assertEquals(3, CountSetBits.countSetBits(7)); + assertEquals(4, CountSetBits.countSetBits(15)); + } +} From c815ce951d4bd205150c09f262dec48168858e7b Mon Sep 17 00:00:00 2001 From: Pankaj Kumar Bind <73558583+Pankaj-Bind@users.noreply.github.com> Date: Fri, 1 Mar 2024 22:14:08 +0530 Subject: [PATCH 3/5] Update CountSetBits.java --- .../com/thealgorithms/bitmanipulation/CountSetBits.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/main/java/com/thealgorithms/bitmanipulation/CountSetBits.java b/src/main/java/com/thealgorithms/bitmanipulation/CountSetBits.java index 50cd4f6d7785..b68c10bc0660 100644 --- a/src/main/java/com/thealgorithms/bitmanipulation/CountSetBits.java +++ b/src/main/java/com/thealgorithms/bitmanipulation/CountSetBits.java @@ -5,7 +5,7 @@ public final class CountSetBits { private CountSetBits() { } - /** + /* * CountSetBits class provides a method to count the number of set bits (1s) in an integer. * Implementation by Pankaj Kumar Bind (https://github.com/Pankaj-Bind). */ @@ -18,7 +18,3 @@ public static int countSetBits(int n) { return count; } } - - /* Time Complexity: O(log n) - * Space Complexity: O(1) - */ \ No newline at end of file From 09aa914bb6ad87dc3b561b42622c699e617f2dad Mon Sep 17 00:00:00 2001 From: Pankaj Kumar Bind <73558583+Pankaj-Bind@users.noreply.github.com> Date: Fri, 1 Mar 2024 22:21:08 +0530 Subject: [PATCH 4/5] Update CountSetBits.java --- .../com/thealgorithms/bitmanipulation/CountSetBits.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/main/java/com/thealgorithms/bitmanipulation/CountSetBits.java b/src/main/java/com/thealgorithms/bitmanipulation/CountSetBits.java index b68c10bc0660..09b3e112dd67 100644 --- a/src/main/java/com/thealgorithms/bitmanipulation/CountSetBits.java +++ b/src/main/java/com/thealgorithms/bitmanipulation/CountSetBits.java @@ -4,11 +4,7 @@ public final class CountSetBits { private CountSetBits() { } - - /* - * CountSetBits class provides a method to count the number of set bits (1s) in an integer. - * Implementation by Pankaj Kumar Bind (https://github.com/Pankaj-Bind). - */ + public static int countSetBits(int n) { int count = 0; while (n > 0) { From 642d1daffff62c71d48e02087d81e7957f7b5b56 Mon Sep 17 00:00:00 2001 From: Pankaj Kumar Bind <73558583+Pankaj-Bind@users.noreply.github.com> Date: Fri, 1 Mar 2024 22:24:56 +0530 Subject: [PATCH 5/5] Update CountSetBits.java --- .../java/com/thealgorithms/bitmanipulation/CountSetBits.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/thealgorithms/bitmanipulation/CountSetBits.java b/src/main/java/com/thealgorithms/bitmanipulation/CountSetBits.java index 09b3e112dd67..2593df013092 100644 --- a/src/main/java/com/thealgorithms/bitmanipulation/CountSetBits.java +++ b/src/main/java/com/thealgorithms/bitmanipulation/CountSetBits.java @@ -4,7 +4,6 @@ public final class CountSetBits { private CountSetBits() { } - public static int countSetBits(int n) { int count = 0; while (n > 0) {