Alex Klymenko
ac31fba37a
refactor: cleanup BeadSort ( #5269 )
...
* cleanup: BeadSort and BeadSortTest, adding javadocs
* checkstyle: fix formatting
* checkstyle: fix import order
* cleanup: improving code readability
* cleanup: improving code readability using enum to represent beads
* checkstyle: fix enum formatting
* fix: enum should be compared using ==, according to maven bugs finder plugin
---------
Co-authored-by: Alex Klymenko <alx@alx.com >
Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com >
2024-07-01 22:26:15 +02:00
Alex Klymenko
208e1e99f0
refactor: BubbleSortRecursion: improving naming, adding standard test ( #5267 )
...
* refactor: improving naming, adding standard test
* style: remove `BubbleSortRecursive` from pmd exclude list
* docs: typo fix
---------
Co-authored-by: Alex Klymenko <alx@alx.com >
Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com >
2024-06-30 17:51:11 +00:00
Alex Klymenko
758df7dcc3
feat: optimize SortUtils.swap by skipping operations for equal indices ( #5266 )
...
* Refactor: adding check to swap method in SortUtils
* Checkstyle: fix formatting
* Checkstyle: fix formatting, and redundant braces
* fix: adding flipped tests, removed messages from tests
* checkstyle: fix indent
* style: mark `temp` as `final`
* tests: remove test case with empty array
Such calls should be excluded.
---------
Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com >
2024-06-29 22:33:40 +02:00
Alex Klymenko
20e7a3aca4
refactor: SelectionSort like classes and their tests ( #5265 )
...
* Refactor: Adding test common approach, adding javadocs, renaming variables
* Refactor: Fix failed build, when generated test case for recursion is too big. To avoid stackoverflow
* Checkstyle: Adding newline to end of class
* refactor: simplify assign minIndex in recursiveSelectionSort, and improving SelectionSort
* checkstyle: adding newline to SelectionSort
---------
Co-authored-by: Alex Klymenko <alx@alx.com >
Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com >
2024-06-29 10:04:58 +02:00
Alex Klymenko
0087444e9f
feat: add SelectionSortRecursive ( #5255 )
...
* Implementation: SelectionSort using recursion
* Documentation: adding links
* Fix issue with findMinIndex
* Fix: change findMinIndex method to recursive
* Fix: improve variable change scope
* Fix: Replacing recursive method findMinIndex with iterative. To fix StackOverFlow on huge arrays
* refactor: remove `null` check
* Fix: Removing redundant null check
---------
Co-authored-by: alxklm <alx@alx.com >
Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com >
2024-06-28 09:18:06 +02:00
Alex Klymenko
7054535d36
feat: add WaveSort ( #5252 )
...
* Implementing WaveSort Algorithm
* Refactor: Tests to ParameterizedTest
* Checkstyle: Fix wrong align
* Checkstyle: Fix wrong align for second line
* Checkstyle: Remove redundant line
* Naming: fix method name
* Documentation: adding links
* Fix: adding test for isWaveSorted method
* Documentation: adding description for WaveSort
* Testing: test wave sort assert
* Checkstyle: remove redundant whitespace
* Checkstyle: remove redundant newline
* Testing: improving tests
---------
Co-authored-by: alxklm <alx@alx.com >
Co-authored-by: vil02 <65706193+vil02@users.noreply.github.com >
2024-06-26 22:41:54 +02:00
Piotr Idzik
22f2abd94f
style: enable WhitespaceAround in checktyle ( #5241 )
2024-06-24 16:47:33 +08:00
Alex Klymenko
a5b4c6173f
fix: avoid infinite loop in SwapSort ( #5248 )
...
---------
Co-authored-by: vil02 <65706193+vil02@users.noreply.github.com >
2024-06-24 08:49:01 +02:00
Alex Klymenko
8ef69bc854
Improving BitonicSort ( #5244 )
...
* Improving BitonicSort
* Moving max method to SortingUtils
* Adding Javadoc to merge method
* Fix for test and code improvements
* Improving code readability
* Renaming method parameters
---------
Co-authored-by: alx <alx@alx.com >
Co-authored-by: vil02 <65706193+vil02@users.noreply.github.com >
2024-06-21 19:37:58 +00:00
Alex K
15d2e70673
Refactoring and code improving for StrandSort ( #5243 )
...
* Refactoring and code improving for StrandSort
* Fix java checkstyle
* Fix "Each variable declaration must be in its own statement"
* Fix "uses integer based for loops to iterate over a List"
---------
Co-authored-by: alx <alx@alx.com >
2024-06-20 17:47:43 +02:00
Alex K
91101ec424
Refactoring and code improving for OddEvenSort ( #5242 )
...
* Refactoring and code improving for OddEvenSort, changing it according to SortAlgorithm approach, also applying SortUtils
* Fix checkstyle
* Remove redundant main, remove redundant tests.
---------
Co-authored-by: alx <alx@alx.com >
Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com >
2024-06-20 08:26:09 +02:00
Alex K
a9db8428b2
Refactoring BinaryInsertionSort according to common SortAlgorithm approach ( #5239 )
...
* Refactoring BinaryInsertionSort according to common SortAlgorithm approach
* Formatting has been fixed
* Refactoring tests for BinaryInsertionSort according to SortingAlgorithmTest
* Removing redundant tests and improving variable readability
---------
Co-authored-by: alx <alx@alx.com >
Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com >
2024-06-19 18:57:54 +02:00
Samuel Facchinello
74e51990c1
style: enable InvalidJavadocPosition in checkstyle ( #5237 )
...
enable style InvalidJavadocPosition
Co-authored-by: Samuel Facchinello <samuel.facchinello@piksel.com >
2024-06-18 19:34:22 +02:00
Samuel Facchinello
9973b8efc8
refactor: redesign StringMatchFiniteAutomata ( #5222 )
...
* refactor
* add test
* fix clang
* fix pmd
* remove main method
* refactor searchPattern with private class
* fix checkstyle
* Update src/main/java/com/thealgorithms/others/StringMatchFiniteAutomata.java
Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com >
* Update src/main/java/com/thealgorithms/others/StringMatchFiniteAutomata.java
Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com >
* Update src/main/java/com/thealgorithms/others/StringMatchFiniteAutomata.java
Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com >
* fix clang
* tests: add more test cases
---------
Co-authored-by: Samuel Facchinello <samuel.facchinello@piksel.com >
Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com >
2024-06-17 20:55:20 +00:00
Samuel Facchinello
cdb3affdd9
style: enable AvoidNestedBlocks in checkstyle ( #5228 )
...
* enable style AvoidNestedBlocks
* refactor after enable style AvoidNestedBlocks
* fix clang
* fix checkstyle
* fix pmd
---------
Co-authored-by: Samuel Facchinello <samuel.facchinello@piksel.com >
Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com >
2024-06-14 16:57:30 +02:00
Samuel Facchinello
87b17e0571
style: enable NeedBraces in checkstyle ( #5227 )
...
* enable style NeedBraces
* style: enable NeedBraces in checkstyle
---------
Co-authored-by: Samuel Facchinello <samuel.facchinello@piksel.com >
2024-06-13 21:00:16 +02:00
Samuel Facchinello
51fcc66345
refactor: redesign LetterCombinationsOfPhoneNumber ( #5221 )
...
* Refactor
* fix clang
* fix clang
* fix clang tests
* fix pattern
* add test case null
* Update src/main/java/com/thealgorithms/strings/LetterCombinationsOfPhoneNumber.java
Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com >
* Update src/main/java/com/thealgorithms/strings/LetterCombinationsOfPhoneNumber.java
Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com >
* Update src/main/java/com/thealgorithms/strings/LetterCombinationsOfPhoneNumber.java
Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com >
* Update src/main/java/com/thealgorithms/strings/LetterCombinationsOfPhoneNumber.java
Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com >
* Update src/main/java/com/thealgorithms/strings/LetterCombinationsOfPhoneNumber.java
Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com >
* Update src/main/java/com/thealgorithms/strings/LetterCombinationsOfPhoneNumber.java
Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com >
* Update src/test/java/com/thealgorithms/strings/LetterCombinationsOfPhoneNumberTest.java
Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com >
* rename MAP_OF_CHARS to KEYPAD
* fix clang
* remove main
* add tests
* feat: throw for wrong inputs
* change keypad to list
* Update src/main/java/com/thealgorithms/strings/LetterCombinationsOfPhoneNumber.java
Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com >
* Update src/main/java/com/thealgorithms/strings/LetterCombinationsOfPhoneNumber.java
Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com >
* Update src/main/java/com/thealgorithms/strings/LetterCombinationsOfPhoneNumber.java
Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com >
* fix with number 1 (empty value), and add tests
* style: avoid concatenation while populating `KEYPAD`
* change to assertEquals
---------
Co-authored-by: Samuel Facchinello <samuel.facchinello@piksel.com >
Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com >
2024-06-13 19:40:12 +02:00
StarDxxx
a81fb32e6c
style: enable TypeName ( #5214 )
...
* style: enable `TypeName` in checkstyle
* style: enable `TypeName` in checkstyle
* Update directory
* style: use proper formatting
---------
Co-authored-by: StarDxxx <StarDxxx@users.noreply.github.com >
Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com >
2024-06-08 13:37:20 +02:00
Piotr Idzik
41efe7fbbc
style: include DMC_DUBIOUS_MAP_COLLECTION ( #5207 )
2024-06-07 23:29:53 +05:30
Alex K
2568b96784
Adding class for generating all subsequences from a given List ( #5194 )
...
* Adding class for generating all subsequences from a given List
* Fix test data format
* Fix braces wrong placement
* Fix "Utility classes should not have a public or default constructor."
* Fix checkstyle " Class Subsequence should be declared as final."
* Renaming class Subsequence to SubsequenceFinder. Refactored test to Parametrized test. Fixed input parameter as final.
* Fix formatting
* Fix formatting
* Fix formatting
* Fix import ordering
* Renaming method generate all.
Renaming test method.
Adding duplication test.
Renaming TestData to TestCase.
* Fix formatting
* style: add assertion to avoid potential infinite loop
---------
Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com >
2024-05-30 18:43:15 +00:00
S. Utkarsh
a6e873deef
style: enable MemberName in checkstyle ( #5193 )
...
* style: enable MemberName in checkstyle
* style: simply uncomment `MemberName`
---------
Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com >
2024-05-29 20:44:14 +00:00
S. Utkarsh
25d711c5d8
style: enable LocalVariableName in CheckStyle ( #5191 )
...
* style: enable LocalVariableName in checkstyle
* Removed minor bug
* Resolved Method Name Bug
* Changed names according to suggestions
2024-05-28 20:29:28 +02:00
Godwill Christopher
295e7436b1
style: enable MethodName in CheckStyle ( #5182 )
...
enabled: MethodName in CheckStyle
2024-05-27 09:06:06 +02:00
Piotr Idzik
8466219685
style: do not suppress serial ( #5168 )
2024-05-20 20:39:31 +05:30
Piotr Idzik
bf9d0ed66a
fix: handle constant inputs in `LongestIncreasingSubsequence::findLISLen' ( #5160 )
...
fix: handle constant inputs in `LongestIncreasingSubsequence::findLISLen`
2024-05-17 15:24:22 +05:30
Piotr Idzik
319d5143cc
refactor: cleanup DudeneyNumber ( #5156 )
2024-05-12 14:35:33 +05:30
Piotr Idzik
cf6c87c35c
style: make SubsetCount a proper utility ( #5153 )
2024-05-11 14:36:17 +00:00
Piotr Idzik
d2ddec55e5
style: include NAB_NEEDLESS_BOOLEAN_CONSTANT_CONVERSION ( #5149 )
...
* style: use `assertFalse` and `assertTrue`
* style: include `NAB_NEEDLESS_BOOLEAN_CONSTANT_CONVERSION`
2024-05-08 22:41:46 +05:30
Piotr Idzik
d3bb691f59
style: enable HideUtilityClassConstructor in checkstyle ( #5147 )
2024-05-08 09:58:29 +03:00
Piotr Idzik
bfb27eeb59
style: enable ArrayTypeStyle in checkstyle ( #5145 )
2024-05-06 22:49:52 +03:00
Piotr Idzik
414835db11
style: enable AvoidStarImport in checkstyle ( #5141 )
2024-05-05 20:48:56 +02:00
Piotr Idzik
5d00889291
fix: handle empty inputs in CircleSort ( #5121 )
...
* fix: handle empty inputs in `CircleSort`
* style: remove `main` method
2024-05-05 23:56:54 +05:30
SOZEL
dda3c9cb59
Refactor Levenshtein distance implementation ( #5138 )
...
* ref: refactor Levenshtein distance implementation
- Rewrite the original levenshtein distance implementation in functional style
- Add optimized version of levenshtein distance
* ref: make `LevenshteinDistance` class a proper utility
* ref: remove duplicated test data
* ref: update tests
---
Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com >
2024-05-04 11:13:30 +02:00
Piotr Idzik
de18d0df7e
style: enable EmptyStatement ( #5120 )
2024-04-26 22:39:03 +03:00
Piotr Idzik
6de154d218
tests: add tests of Mode ( #5104 )
2024-04-26 06:40:01 +00:00
marysiuniq
ac598e2b93
Remove unused import. ( #5113 )
...
Co-authored-by: Maria Paszkiewicz SCC <maria.paszkiewicz@kit.edu >
2024-04-21 21:02:32 +02:00
marysiuniq
8129686e2e
Added tests for FactorialRecursion ( #5109 )
...
* Added tests for `FactorialRecursion`
* Apply suggestions from code review
Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com >
---------
Co-authored-by: Maria Paszkiewicz SCC <maria.paszkiewicz@kit.edu >
Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com >
2024-04-20 20:31:13 +02:00
marysiuniq
7201dc78ad
Added tests for NumberOfDigits ( #5107 )
...
Co-authored-by: Maria Paszkiewicz SCC <maria.paszkiewicz@kit.edu >
Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com >
2024-04-13 20:45:07 +02:00
SOZEL
c53f178308
Implement Parentheses Generator ( #5096 )
...
* chore: add `ParenthesesGenerator` to `DIRECTORY.md`
* feat: implement Parentheses Generator
* ref: change `ParenthesesGenerator`s method to `static`
* ref: use parametrized tests
* ref: handling exception when `n < 0`
* chore: update docstrings
* ref: make `ParenthesesGenerator` to be a proper utility
* chore(docs): add private constructor docstring
* ref(tests): move bad name suggestions
* style: remove reduntant comments
---------
Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com >
2024-04-05 18:41:27 +02:00
Piotr Idzik
098f044370
Remove CalculateMaxOfMin ( #5079 )
2024-03-22 19:18:08 +08:00
straf10
47a9b1b647
Add WelshPowell (Graph Colouring) ( #5034 )
...
* Welsh Powell Algorithm + Test
---------
Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com >
2024-02-12 20:48:07 +01:00
VedantK
14b3f45f9f
Add ExchangeSort ( #5029 )
...
* added ExchangeSort and its testcases
---------
Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com >
2024-02-01 09:25:31 +01:00
Bhishmadev Ghosh
55f08cc013
Add tests SumOfSubset ( #5021 )
...
* Updated main and test
* removed
* style: reorder test cases
---------
Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com >
2024-01-26 19:30:26 +01:00
Piotr Idzik
ac7152d757
Remove unused imports from PerfectSquareTest ( #5016 )
...
style: remove unused imports from `PerfectSquareTest`
2024-01-13 09:21:57 +00:00
Piotr Idzik
9426053f73
Remove unused import from PowerOfTwoOrNotTest ( #5015 )
...
style: remove unused import from `PowerOfTwoOrNotTest.java`
2024-01-13 14:34:32 +05:30
Sarthak Chaudhary
8804cec957
Feature/4638 array right rotation ( #5014 )
...
* Create ArrayRightRotationTest.java
* Create ArrayRightRotation.java
* The updated one
* The updated one
* Added the test cases
* Added new test cases!
* Update ArrayRightRotation.java
* Update ArrayRightRotationTest.java
2024-01-13 13:59:30 +05:30
Piotr Idzik
19b7a22ec9
Remove unused imports from BoyerMooreTest ( #5012 )
2024-01-10 20:31:38 +02:00
mpousmali
fd84b0b10e
Add SRTF Algorithm ( #5011 )
2024-01-08 23:48:11 +02:00
Piotr Idzik
570f7e7ef6
Remove unused import ( #5010 )
2024-01-08 23:44:32 +02:00
Nishant Jain
bb2fff0cbb
Add package name ( #5007 )
2024-01-08 15:41:14 +02:00