diff --git a/simple-algorithms/count-bits/build.gradle b/simple-algorithms/big-o/build.gradle similarity index 74% rename from simple-algorithms/count-bits/build.gradle rename to simple-algorithms/big-o/build.gradle index 5584480..6b4136a 100644 --- a/simple-algorithms/count-bits/build.gradle +++ b/simple-algorithms/big-o/build.gradle @@ -2,10 +2,10 @@ plugins { id 'java' } -def junitJupiterVersion = '5.7.0' +def junitJupiterVersion = '5.10.2' -group 'com.josdem.kata' -version '1.0-SNAPSHOT' +group = 'com.josdem.algorithms' +version = '1.0.0-SNAPSHOT' repositories { mavenCentral() diff --git a/simple-algorithms/count-bits/gradle/wrapper/gradle-wrapper.jar b/simple-algorithms/big-o/gradle/wrapper/gradle-wrapper.jar similarity index 100% rename from simple-algorithms/count-bits/gradle/wrapper/gradle-wrapper.jar rename to simple-algorithms/big-o/gradle/wrapper/gradle-wrapper.jar diff --git a/simple-algorithms/count-bits/gradle/wrapper/gradle-wrapper.properties b/simple-algorithms/big-o/gradle/wrapper/gradle-wrapper.properties similarity index 80% rename from simple-algorithms/count-bits/gradle/wrapper/gradle-wrapper.properties rename to simple-algorithms/big-o/gradle/wrapper/gradle-wrapper.properties index aa991fc..35eeb35 100644 --- a/simple-algorithms/count-bits/gradle/wrapper/gradle-wrapper.properties +++ b/simple-algorithms/big-o/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,6 @@ +#Wed Apr 10 06:34:02 EDT 2024 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/simple-algorithms/count-bits/gradlew b/simple-algorithms/big-o/gradlew old mode 100755 new mode 100644 similarity index 100% rename from simple-algorithms/count-bits/gradlew rename to simple-algorithms/big-o/gradlew diff --git a/simple-algorithms/big-o/gradlew.bat b/simple-algorithms/big-o/gradlew.bat new file mode 100644 index 0000000..107acd3 --- /dev/null +++ b/simple-algorithms/big-o/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/simple-algorithms/big-o/settings.gradle b/simple-algorithms/big-o/settings.gradle new file mode 100644 index 0000000..96beae2 --- /dev/null +++ b/simple-algorithms/big-o/settings.gradle @@ -0,0 +1,2 @@ +rootProject.name = 'big-o' + diff --git a/simple-algorithms/big-o/src/main/java/com/josdem/algorithms/ConstantTimePrinter.java b/simple-algorithms/big-o/src/main/java/com/josdem/algorithms/ConstantTimePrinter.java new file mode 100644 index 0000000..74559fc --- /dev/null +++ b/simple-algorithms/big-o/src/main/java/com/josdem/algorithms/ConstantTimePrinter.java @@ -0,0 +1,14 @@ +package com.josdem.algorithms; + +import java.util.logging.Logger; + +/* Type: Constant Time Algorithms – O(1) + Description: Fixed amount of time regardless of n value + */ +public class ConstantTimePrinter { + private final Logger log = Logger.getLogger(ConstantTimePrinter.class.getName()); + public int print(int number) { + log.info("Number: " + number); + return number; + } +} diff --git a/simple-algorithms/big-o/src/test/java/com/josdem/algorithms/ConstantTimeTest.java b/simple-algorithms/big-o/src/test/java/com/josdem/algorithms/ConstantTimeTest.java new file mode 100644 index 0000000..2843a8f --- /dev/null +++ b/simple-algorithms/big-o/src/test/java/com/josdem/algorithms/ConstantTimeTest.java @@ -0,0 +1,17 @@ +package com.josdem.algorithms; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +class ConstantTimeTest { + + private final ConstantTimePrinter constantTimePrinter = new ConstantTimePrinter(); + + @Test + @DisplayName("should print a number") + void shouldPrintNumber(){ + assertEquals(1000, constantTimePrinter.print(1000)); + } +} diff --git a/simple-algorithms/count-bits/src/main/java/com/josdem/kata/BitCounter.java b/simple-algorithms/count-bits/src/main/java/com/josdem/kata/BitCounter.java deleted file mode 100644 index 73a66c2..0000000 --- a/simple-algorithms/count-bits/src/main/java/com/josdem/kata/BitCounter.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.josdem.kata; - -/* -Write a function that takes an integer as input, and returns the number of bits that are equal to one in the binary representation of that number. -You can guarantee that input is non-negative. -Example: The binary representation of 1234 is 10011010010, so the function should return 5 in this case - */ - -public class BitCounter { - public int countBits(int number) { - Long result = - Integer.toBinaryString(number) - .chars() - .mapToObj(ch -> (char) ch) - .filter(ch -> ch == '1') - .count(); - return result.intValue(); - } -} diff --git a/simple-algorithms/count-bits/src/test/java/com/josdem/kata/BitCounterTest.java b/simple-algorithms/count-bits/src/test/java/com/josdem/kata/BitCounterTest.java deleted file mode 100644 index 3dba082..0000000 --- a/simple-algorithms/count-bits/src/test/java/com/josdem/kata/BitCounterTest.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.josdem.kata; - -import static org.junit.jupiter.api.Assertions.assertEquals; - -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -class BitCounterTest { - - private BitCounter bitCounter = new BitCounter(); - - @Test - @DisplayName("Counting bits") - void shouldCountBits() { - assertEquals(5, bitCounter.countBits(1234)); - assertEquals(1, bitCounter.countBits(4)); - assertEquals(3, bitCounter.countBits(7)); - assertEquals(2, bitCounter.countBits(9)); - assertEquals(2, bitCounter.countBits(10)); - } -}