76a450fb75
feat: add PatienceSort
( #5288 )
...
* feat: PatienceSort
* refactor: fix readability issues,a and redundant check
---------
Co-authored-by: alxklm <alx@alx.com>
2024-07-24 17:32:47 +02:00
08db744240
refactor: cleanup PancakeSort
( #5295 )
...
* refactor: PancakeSort cleanup, changing test to standard
* checkstyle: fix formatting
---------
Co-authored-by: alxklm <alx@alx.com>
2024-07-22 09:20:59 +02:00
97d416e64e
refactor: cleanup StoogeSort
( #5283 )
...
* refactor: cleanup StoogeSort
* refactor: update DIRECTORY.md for StoogeSortTest
---------
Co-authored-by: Alex Klymenko <alx@alx.com>
2024-07-20 19:28:06 +00:00
94032148ca
refactor: cleanup RadixSort
( #5280 )
...
* refactor: refactoring RadixSort, adding test, update DIRECTORY.md
* checkstyle: fix formatting for test
* refactor: adding possibility to sort negative numbers. Improve tests. Improving code readability
* checkstyle: fix formatting
* refactor: resolve conflicts with master branch
* refactor: remove negative integers support
* checkstyle: fix formatting
* checkstyle: fix formatting, revert test
* refactor: adding return array to countDigits and buildOutput method, adding more specific description to javadocs
---------
Co-authored-by: Alex Klymenko <alx@alx.com>
Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com>
2024-07-19 18:24:55 +02:00
5840579885
style: include BigIntegerInstantiation
( #5294 )
2024-07-16 11:39:11 +03:00
57878cac55
refactor: cleanup CycleSort
( #5271 )
...
* refactor: cleanup CycleSort. Adding test for it. Simplify code
* refactor: CycleSortTest to directory file
* tests: Adding more various tests cases for testing sorting algorithms
* checkstyle: imports and whitespaces fixes
* tests: removing boolean sorting
* checkstyle: fix "eedBraces: 'if' construct must use '{}'s"
* checkstyle: reduce "Too many static imports"
---------
Co-authored-by: Alex Klymenko <alx@alx.com>
2024-07-13 22:44:49 +05:30
2d6c39ce10
feat: CountingSort
implementation ( #5287 )
...
* feat: CountingSort
* checkstyle: fix formatting
* refactor: adding additional final modifiers
* refactor: restructure sorting, update docs and tests
* docs: typo fix
---------
Co-authored-by: Alex Klymenko <alx@alx.com>
Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com>
2024-07-12 20:03:54 +02:00
87e6184494
cleanup: removing wrong CountingSort
implementation ( #5284 )
...
cleanup: removing CountingSort
Co-authored-by: Alex Klymenko <alx@alx.com>
2024-07-12 08:49:11 +02:00
f83bb659ba
refactor: redesign ArrayCombination
( #5181 )
...
* Related to #5164 (Redesign of ArrayCombination)
* Checkstyle fix
* Clang_format
* refactor: cleanup
---------
Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com>
Co-authored-by: vil02 <vil02@o2.pl>
2024-07-10 19:20:32 +02:00
57f65808ad
refactor: MergeSortNoExtraSpace
( #5277 )
...
* refactor: MergeSortNoExtraSpace, change naming, adding test
* checkstyle: fix import ordering, and formatting
* fix: adding negative numbers check, fix possible overflow
* checkstyle: remove newline
---------
Co-authored-by: Alex Klymenko <alx@alx.com>
Co-authored-by: vil02 <65706193+vil02@users.noreply.github.com>
2024-07-09 22:44:42 +02:00
96e59e063a
style: include DLS_DEAD_LOCAL_STORE
( #5276 )
2024-07-05 22:52:54 +03:00
5bc96cf789
style: include RV_ABSOLUTE_VALUE_OF_HASHCODE
( #5273 )
2024-07-02 22:47:35 +03:00
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
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
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
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
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
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
cff3a59530
style: include BED_BOGUS_EXCEPTION_DECLARATION
( #5233 )
2024-06-25 06:51:24 +00:00
a710fe11c4
style: include SPP_USE_ISEMPTY
( #5238 )
2024-06-24 08:49:50 +00:00
22f2abd94f
style: enable WhitespaceAround
in checktyle ( #5241 )
2024-06-24 16:47:33 +08:00
7b17ead902
chore: improve FibonacciHeap ( #5251 )
2024-06-24 16:42:29 +08:00
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
308bdcfc19
Refactor: Replace Swap and Comparison Methods with SortUtils Utility Methods ( #5246 )
...
* Refactor: Replace Swap and Comparison Methods with SortUtils Utility Methods
* Rename parameter unsorted to array
---------
Co-authored-by: Alex Klymenko <alx@alx.com>
2024-06-22 22:29:17 +02:00
e8f1990c8c
Replace the various swap method variants with SortUtils.swap ( #5245 )
...
Fix different variants of swap methods to SortUtils.swap
Co-authored-by: AlexKlm <alx@alx.com>
2024-06-22 10:18:39 +02:00
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
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
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
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
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
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
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
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
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
31db1af345
style: include SUI_CONTAINS_BEFORE_ADD
( #5216 )
2024-06-13 17:27:49 +00:00
a2af09cdfb
style: enable ParenPad
in checkstyle ( #5226 )
...
* enable ParenPad
* style: enable ParenPad in checkstyle
---------
Co-authored-by: Samuel Facchinello <samuel.facchinello@piksel.com>
2024-06-13 19:25:43 +02:00
f8698674b3
style: include IM_BAD_CHECK_FOR_ODD
( #5213 )
2024-06-13 10:07:14 +05:30
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
be38886d43
style: enable OperatorWrap
in checkstyle ( #5212 )
2024-06-08 09:36:42 +02:00
b315b7d578
style: include WMI_WRONG_MAP_ITERATOR
( #5206 )
2024-06-06 00:22:12 +05:30
440f3ce18b
style: include MAC_MANUAL_ARRAY_COPY
( #5199 )
2024-06-04 21:02:38 +00:00
493942e319
style: include IT_NO_SUCH_ELEMENT
( #5200 )
2024-06-05 02:24:38 +05:30
2e387fe54e
style: include IMC_IMMATURE_CLASS_VAR_NAME
( #5197 )
2024-06-01 21:36:12 +00:00
5e4db7baf1
style: include SS_SHOULD_BE_STATIC
( #5198 )
2024-06-02 02:54:11 +05:30
c42b1c940c
style: enable ParameterName
in CheckStyle. ( #5196 )
...
* Enabled: ParameterName in CheckStyle.
* Refactored to fix bug caused by selfAssignment of variables in VectorCrossproduct class
2024-05-31 22:01:11 +02:00
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
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
d2bfb100b2
style: include LII_LIST_INDEXED_ITERATING
( #5190 )
2024-05-28 19:06:47 +00:00
2cda944643
style: include ENMI_EQUALS_ON_ENUM
( #5189 )
2024-05-28 19:03:52 +00:00
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